Functional Design Patterns
In this section, we
are moving beyond the basic concepts behind functional programming and looking at some of the functional design patterns that you'll encounter when using functional libraries. You will be introduced to
Monoids
,
Functors
,
Monads
, and other functional programming
patterns that
you can use to structure your programs – these patterns are the functional programming equivalent of the object-oriented design patterns that you might be familiar with from when you first learned about OOP.
Have you ever heard of category theory? The patterns we'll see in this section come from
category theory. Each concept (such as a
Monoid
) has a clear mathematical definition and set of associated laws.
Note
In this section, we won't go into detail regarding these laws, but should you want to research this topic further, it's good to know that the field is called category theory.
This will set you up for further study of functional design patterns and enable you...