There is a pattern with students learning functional programming. First, they try to use loops and mutation; this ends with awkward, broken programs. There is confusion and aggravation. Even hostility. Eventually, they accept and embrace recursion. But, then they write too much. While recursion is better than iteration for functional programming, new functional programmers are unaware of powerful