Programming is just an abstract list of instructions.
Most programs are not functional, and so they break.
Functional programming (and the Lambda Calculus which formalizes computational relationships) essentially applies the laws of mathematical logic to computer programs.
Functional programming is difficult to implement, apparently, because semantics are not necessary concrete. Many programming languages allow for all kinds of logical inconsistencies responsible for crashes and technical debt.
But functional programming makes a program durable forever, as durable as a mathematical equation.
The benefit of moving towards a paradigm of functional programming is when you begin applying these programs to big data, when you begin migrating data and programs from one context to another, when you begin writing programs for programs…. the integrity of the program remains intact.
Functional programs remain modularized, and fungible for other functional programs to use.
Not so with current programming paradigms.
API’s try to translate, but it’s extremely limits, especially if you want to apply AI to the system. Each API is different for every program, so the syntactical integrity is lost through semantic translation.
Where I see this being critical is applying systems Artificial Intelligence to a network of programs.
In the same way a neural net works by computing the inputs within layers of mathematical functions, which get processed and weighted and moved into another layer, until there is a judgement output.
This only produces coherent outputs if the functions are all working from the same syntax.
If your functions all have different syntax, as a result of different semantics, your outputs will not be coherent.
If you apply a neural net to a system of programs, if they are not functional, they will not produce coherent logical outputs.
Functional programming is the future. It ensures mathematical integrity to computation of complex systems.
On another note, within functional programming context is critical. Therefore, all variables should be ordinal, because all variables need to account for temporality. This ordinality should be indexed to time, according to their present state within the program, and the functional dependencies of the variable related to their critical use.