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 the Applicative typeclass came more powerful mapping (traversal), which opened the door to typelevel folding and mapping in Haskell. First, we look at how the 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