Y
Hacker News
new
|
ask
|
show
|
jobs
by
kubb
73 days ago
You can just compile any tail recursive function to a function with a loop and no recursion.
3 comments
1-more
73 days ago
This is in fact how Elm does it! Tail call recursion compiles to a while loop.
link
srean
73 days ago
That does not address the use case where I find tail recursion most tempting. That would be mutually recursive functions.
If the function can be written as an idiomatic loop I probably would do so in the first place.
link
apgwoz
73 days ago
You _can_ do trampolines, but that is kind of infectious, or needs to be very explicit with extra code, etc.
link
srean
72 days ago
Indeed. It's not very efficient though. If I remember correctly Scala does this.
link
adamwk
73 days ago
Right but recursion is only a smaller part of why the optimization is important. It means tail-called functions still build on the stack and long function chains—as is common with fp—can overflow
link