The recursive structure of lists
Traversing and building lists
Implementing map and reduce
When we program with lists in conventional languages, we treat them as things to be iterated—it seems natural to loop over them. So why do we have a chapter on lists and recursion? Because if you look at the problem in the right way, recursion is a perfect tool for processing lists.