Although the roots of functional programming date back to the 1930s (as part of basic mathematical research), the functional approach continues to be very popular, especially within technical and mathematical fields. There are several reasons for this:
- Extensive possibilities for algebraic program transformation
- Extensive possibilities for algebraic program synthesis
- Simple semantic analysis possibilities thanks to the renunciation of "inner states in the calculation process" and "by-effects".
- Elimination of internal conditions: unlike imperative programming, no internal states of a calculation process are required.
- Renunciation of side effects: the state changes which go hand-in-hand with the internal states, the so-called by-effects, can also be dispensed within functional tasks.
Functional programming offers a high degree of abstraction as it is based on the mathematical concept and principle of function. Clean application of this type of programming leads to very precise code. Many small, reusable and highly specialized units, as well as the functions, create a program to solve a much larger task.
Therefore, there are many practical reasons why functional programming and the functional programming languages working with this principle are very popular in computer science, in particular, when it comes to complex mathematical problems and algorithms. At the same time, the very specific application areas ensure functional programming languages play something of a niche role.