sicp exercises  in clojure