|
| ▲ | 1-more 4 days ago | parent | next [-] |
| This is in fact how Elm does it! Tail call recursion compiles to a while loop. |
|
| ▲ | srean 3 days ago | parent | prev | next [-] |
| 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. |
| |
| ▲ | apgwoz 3 days ago | parent [-] | | You _can_ do trampolines, but that is kind of infectious, or needs to be very explicit with extra code, etc. | | |
| ▲ | srean 3 days ago | parent [-] | | Indeed. It's not very efficient though. If I remember correctly Scala does this. |
|
|
|
| ▲ | adamwk 4 days ago | parent | prev | next [-] |
| 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 |
|
| ▲ | 3 days ago | parent | prev [-] |
| [deleted] |