Introduction
We have looked at the basics of Haskell data types, functions, higher order functions, and other abstractions such as type classes. We have also looked at important type classes and concepts such as Functors, Applicatives, and monads.
In this chapter, we will look at common container data types and will work with them. We will visit strings again in this chapter, but with the intention of working in an efficient way. The text
and bytestring
packages provide us with an opportunity to work with efficient string types. Furthermore, the containers being a collection such as list
also provides a way to fold and traverse in a similar way. We will look at two type classes, Traversable
and Foldable
, which give a unified way of folding and traversing over a data type.
A set is an ordered collection of unique items. If we insert an item which is already present in the set, then we get the same set back. One important difference between collections in Haskell and other languages is that...