5 ms·
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.
by unlinked_dll 7y ago
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.
- wues 7y agoErlang guarantees tail call optimisation.
- weavie 7y agoPretty sure .Net has a TCO opcode that F# uses.
- sb8244 7y agoWhat does "guarantee" mean here? If you end a function in BEAM with another function call, it's TCO.
- bad_login 7y agoTail 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.
- sb8244 7y agoCorrect. BEAM does real TCO as far as I'm aware. LYSE has a blurb about it and seems to agree (https://learnyousomeerlang.com/recursion https://learnyousomeerlang.com/recursion).