News for hackers. Stuff that matters.
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.
Re:Clojure for the Erlang VM by wues on Monday January 06, 2020 @03:29AM (#21967542)
Erlang guarantees tail call optimisation.
Re:Clojure for the Erlang VM by weavie on Monday January 06, 2020 @07:25AM (#21968583)
Pretty sure .Net has a TCO opcode that F# uses.
Re:Clojure for the Erlang VM by sb8244 on Monday January 06, 2020 @09:48AM (#21969478)
What does "guarantee" mean here? If you end a function in BEAM with another function call, it's TCO.
Re:Clojure for the Erlang VM by bad_login on Monday January 06, 2020 @11:06AM (#21970173)
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.
Re:Clojure for the Erlang VM by sb8244 on Monday January 06, 2020 @11:15AM (#21970260)
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).