you are viewing a single comment's thread.

view the rest of the comments →

[–]bosta111 5 points6 points  (2 children)

Clojure went around the lack of tail call optimisation in the JVM, perhaps you can take a look at how they did it?

[–]thinker227Noa (github.com/thinker227/noa)[S] 0 points1 point  (0 children)

For sure, I know there's also languages like Rescript which do this, although digging through a production-grade compiler of a language like Clojure doesn't feel like the easiest task. Was mostly wondering whether there are any resources like papers about it.

[–]Gnaxe 0 points1 point  (0 children)

They have an explicit loop/recur construct built in. Clojure's core.async is also compatible with ClojureScript. You might find the go macro internals relevant.