SICP Exercises using clojure