Working through SICP in Clojure.