The trampoline technique is especially useful when you need both TCO and mutual recursion (and the compiler doesn't support TCO across functions.) This is why 'trampoline' is part of the core library in Clojure.
The language targets JVM, where you seemingly cannot just replace the current stack frame with that of another function, so TCO on mutual recursion in Clojure is done with 'trampoline'. Recursion within the same function is done using a special 'recur' form.
The language targets JVM, where you seemingly cannot just replace the current stack frame with that of another function, so TCO on mutual recursion in Clojure is done with 'trampoline'. Recursion within the same function is done using a special 'recur' form.