SICP solutions in Clojure