In Chapter 8, Connecting Functions – Pipelining and Composition, we considered yet more ways to create new functions out of combining previous existing ones. Here, we are going to get into a different theme: how to actually design and write functions, in a typically functional way, by applying recursive techniques.
We will be covering the following topics:
- Understanding what recursion is and how to think in order to produce recursive solutions
- Applying recursion to some well-known problems, such as making a change or the Tower of Hanoi
- Using recursion instead of iteration to re-implement some higher-order functions from earlier chapters
- Writing search and backtrack algorithms with ease
- Traversing data structures, ...