Functional programming is all about functions and, predominantly, mathematical functions. Any language that supports functional programming always works on the solution with two main questions: what needs to be solved and how can this be solved? We saw functional programming and its easy implementation using the C# programming language.
We also learned about Func, Predicate, LINQ, Lambda, anonymous functions, closures, expression trees, currying, closures, and recursion. Finally, we looked into the implementation of the strategy pattern using functional programming.
In the next chapter (Chapter 10, Reactive Programming Patterns and Techniques), we will discuss reactive programming as well as its model and principles. We will also discuss reactive extensions.