Re:Clojure for the Erlang VM
by unlinked_dll on Monday January 06, 2020 @03:21AM
(#21967512)
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.
[ Parent
| on HN ]
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).