Chapter 4. Patterns of Folding and Traversing
In this chapter, we'll focus on two fundamental patterns of recursion—folding and mapping. The more primitive forms of these patterns are to be found in the Prelude, the "old part" of Haskell.
With the introduction of Applicative came more powerful mapping (traversal), which opened the door to type-level folding and mapping in Haskell. First, we look at how Prelude's list fold is generalized to all Foldable containers. Then, we follow the generalization of the list map to all Traversable containers.
Our exploration of fold and map culminates with the Lens library, which raises Foldable and Traversable to an even higher level of abstraction.
In this chapter, we will cover the following:
- Folding with monoids
- Foldable
- Mapping over lists
- Traversable
- Modernizing Haskell
- Lenses