Skip to content

Comment on One Major Difference Between Clojure and Common Lispparent

Comments

The fact that it didn't originally is irrelevant. And the fact that you have to provide a flag because of performance is irrelevant. It still remains that Kawa appears to do full tail call optimization on the JVM. So it can't be that Clojure doesn't do it because the JVM doesn't permit it. So what's really going on here?

Kawa emulates it by adding overhead that interprets and replaces code with loops.

Clojure is instead waiting for a solution on JVM-level.

Performance isn't irrelevant to the question of "what's really going on here".

If it costs too much at run time, Clojure absolutely should not implement it. Lack of TCO isn't that big of a deal.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.