Some readers accustomed to imperative and object-oriented programming languages might be wondering why we haven’t covered loops already. The answer to this is a question: What is a loop? The truth is that functional programming languages usually do not offer looping constructs like
while. Instead, functional programmers rely on a silly concept called recursion, which is the topic of this chapter.