You may also be interested by my implementation with / without various form of tail-recursion using recur or without: <a href="http://github.com/kototama/ansicommonlisp-book-clojure/blob/master/ch04/bst.clj" rel="nofollow">http://github.com/kototama/ansicommonlisp-book-clojure/blob/...</a>