Comment on Clojure for the Erlang VMparentComments−unlinked_dll6yAnd none of them guarantee tail call optimization leading to trade offs in the design of particular languages that may or may not be acceptable.−wues6yErlang guarantees tail call optimisation.−weavie6yPretty sure .Net has a TCO opcode that F# uses.−sb82446yWhat does "guarantee" mean here? If you end a function in BEAM with another function call, it's TCO.−bad_login6yTail 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.−sb82446yCorrect. BEAM does real TCO as far as I'm aware. LYSE has a blurb about it and seems to agree (https://learnyousomeerlang.com/recursion).
Comments
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).