Going through SICP in Clojure