SICP examples drawn from multiple sources in Clojure