Working with Foldable and Traversable
In this recipe, we will work with two type classes, Traversable, and Foldable. Both these classes are the generalization of the functions that we have seen when working with Lists. Traversable, as the name suggests, allows us to browse a data structure to traverse from left to right. Similarly, the Foldable type class allows us to fold the elements of a data type.
In fact, in previous versions of GHC, traversals and folding were defined for lists. In recent versions, those functions are generalized to include Traversable and Foldable, making them applicable to a wide range of data structures.
We will also define Traversable and Foldable instances for a tree.
How to do it...
- Create a new project
working-with-traversable-foldable-mapwith thesimpleStack template:
stack new working-with-traversable-foldable-map simple
- Add dependency on the containers library in the
build-dependssubsection of theexecutablesection:
executable working-with-traversable...