From the computer science perspective, functions can have many forms such as first order functions, higher-order functions, or pure functions. This is also true from the mathematics point of view. Using a higher-order function is a function one of the following can be performed:
- Takes one or more functions as arguments to do some operations
- Returns a function as its result
All other functions except the higher-order functions are first-order functions. However, from the mathematics point of view, higher-order functions are also called operators or functionals. On the other hand, if the return value of a function is only determined by its input and of course without observable side effects, it is called a pure function.
In this section, we will briefly discuss why and how to use different functional paradigms in Scala. Especially, pure...