In this chapter, we explored some of the most fundamental principles and concepts of the functional programming paradigm.
Over the next four chapters, we are going to deviate a little bit from functional programming because we are going to take an extensive look at functions, asynchronous programming, and certain aspects of the TypeScript/JavaScript runtime, such as closures and prototypes. We need to explore these topics before we can learn more about the implementation of functional programming techniques. However, if you are already very confident with using functions, closures, the this operator, and prototypes, then you should be able to skip the next four chapters.