SICP exercises in clojure