You can use recur for tail call optimization in Clojure, though it's messier than Scheme.
> Note that recur is the only non-stack-consuming looping construct in Clojure.
http://clojure.org/special_forms#Special%20Forms--%28recur%2...
> Note that recur is the only non-stack-consuming looping construct in Clojure.
http://clojure.org/special_forms#Special%20Forms--%28recur%2...