Implementation of the SICP exercises in Clojure