What are functional programming systems

code

What are functional programming systems

Almost every programmer’s first job is to learn object-oriented development methodology. Usually entering this specialty involves familiarity with the languages Java or C++, or at best Ruby, Python, or C#. Such a developer will already have an idea of classes, objects, etc. But the basics of functional programming, most likely, will not be familiar to him yet. This paradigm differs significantly not only from the object-oriented approach, but also from other methodologies (procedural, prototype-oriented, etc.).

Functional programming is becoming more and more in demand. This is due to a number of factors. We cannot say that this is a new paradigm. For example, back in the nineties, the Haskell programming language appeared, which is still actively used for FP. Erlang, Scala, Clojure can also be placed in the same category. All such programming languages share one very important advantage. They can be used to write competitive software products, so problems such as mutual locks and thread-safety disappear when using them.

The essence of the functional programming paradigm is that the developer should not specify a sequence of required commands, but describe the principle of their interaction with subprograms. This is similar to the work in OOP, but in this case the implementation is carried out at the level of the whole software product.

For example, in object-oriented programming the developer must define objects and describe the algorithms of their interaction with each other, but at the same time there is a possibility to write code not related to them. This code looks detached and affects the work of the whole program. It directs some objects to interact with each other, handles some results, etc.

The functional paradigm is more advanced in this respect. In this type of programming, the code describes the rules for handling data. The developer only generates the necessary conditions, and the code directly determines their practical application.

When comparing procedural and functional programming, there are overlaps only in the presence of commands which are executed by the language. All other aspects of these paradigms are different.

The notion of functional programming is related to paradigms in which applications are developed by using functions sequentially. And the procedural approach uses instructions.

Comparison of Imperative and Functional Programming
One might think that the term “functional programming style” refers to functions.

But it doesn’t. Functions are represented in different paradigms. But as far as functional programming is concerned, the difference from imperative programming is in the very approach to writing applications.