The short answer is "no."
A slightly longer answer is that Clojure is intentionally designed to require a clear indication of where Tail Call optimization is required because the JVM does not support it natively.
By the way, you can use recur without loop , so you no longer need to enter text, for example:
(defn func [x] (if (= x 1000000) x (recur (inc x))))
Update , April 29th:
Chris Frieze is working on a Clojure TCO project with Dan Friedman, and while no one claims to be the βanswerβ at this time, the project is interesting and promising. Chris recently gave an unofficial report on this project, and published it on his blog .
Scott source share