reduce is a very useful function. You can use it for many calculations over a collection. Code annotations are useful, as are physical metaphors.
map is one of the staples of functional programming. It's totally useful and also surprisingly simple. Let's look at some examples and annotated code.
`clojure.core/reduce` is a powerful function, yet the code for it is so simple. It's four lines! We TDD our own implementation.
Functional programmers often use the term "reason about code". It's not very well defined generally, but I use it myself to refer to our ability to use our real-world intuition in our own code.
A deep-dive into a single reduce example shows how much can happen in a short bit of code.
Learning to write map is a good lesson because it has recursion, list building, and higher order functions. It's everything that makes Lisp great.