Well, programming languages are super awesome. Yes, there are lots of them and many alternatives to do the same task. But usually, there are only a few that stands up.
Most of the prominent programming languages are we used to use are imperative. For example Java, C++, and C#. In the imperative paradigm, we define step by step instructions to get what we what to. This approach is known to have issues such as immutable state, boilerplate code and difficulty to work with concurrency.
Recently, the functional programming style is gaining traction and becoming a trend which has advantages such as not needing to worry about keeping the state, support for immutable variables and higher-order functions. Though the functional approach has many amazing features, it’s also not good and fancy all the time. In functional programming, we describe what we need rather than how to do. And when we do this using functions we declare them in the reverse order (first operation at last) which is not natural. …