In Chapter 10, Ensuring Purity – Immutability, we saw several functional techniques to solve different problems. However, programmers who are used to employing OOP may find that we have missed some well-known formula and solutions that are often used in imperative coding. Since design patterns are well known, and programmers will likely already be aware of how they are applied in other languages, it's important to take a look at how a functional implementation would be done.
In this chapter, we shall consider the solutions implied by design patterns, which are common in OOP, to see their equivalences in FP. This will help you to transition from OOP to a more functional approach and to learn more about the power and methods of FP, by seeing an alternative solution to problems you already knew.
In particular, we...