Clojure Iteration: A Practical Guide