After learning how to work with functions in detail, mastering asynchronous programming, and going through the main characteristics of the JavaScript runtime, we are now fully ready to focus on functional programming. In this chapter, we are going to focus on the most fundamental functional programming techniques and patterns.
We are going to try to avoid using external libraries and we are going to implement some of these techniques and patterns from scratch. This will be slightly more tedious, but it will help us to fully understand how these techniques work internally. Please note that some of these implementations have been simplified and do not cover all the potential edge cases. In an actual production system, using a well-tested functional programming library is recommended.
In this chapter, we are going to learn about the following functional...