In the preceding chapters, we learned the most fundamental functional programming techniques and patterns, including some of the most commonly known algebraic data types.
In this chapter, we are going to learn about a number of additional functional programming techniques and patterns, including the following:
- Immutability
- Optics
- Lenses
- Prims
- Lazy evaluation
Once more, we will try to build everything from scratch, trying to avoid the use of third-party libraries. Our goal is to take a look at the internal implementation of some of these techniques and patterns so we can fully understand how they work. Let's get started!