Working through the examples in The Reasoned Schemer, in Clojure