Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

And none of them guarantee tail call optimization leading to trade offs in the design of particular languages that may or may not be acceptable.


Erlang guarantees tail call optimisation.


Pretty sure .Net has a TCO opcode that F# uses.


What does "guarantee" mean here? If you end a function in BEAM with another function call, it's TCO.


Tail Call Optimization is an optimization done by the compile/vm that replace (in assembly terms) a CALL by a JMP. Therefore removing a call stack.


Correct. BEAM does real TCO as far as I'm aware. LYSE has a blurb about it and seems to agree (https://learnyousomeerlang.com/recursion).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: