Hacker News new | ask | show | jobs
by leppie 5276 days ago
Funny article. He mentions 'tail call elimination' once, and then never mentions 'tail call' again.

Also a 'tail call' and 'tail call elimination' are 2 completely different things. The former being an implementation detail (to provide proper tail recursion for languages that require it, ie Scheme), the latter an optimization technique (to remove (expensive) tail calls!).

2 comments

Nonetheless, the term "tail call" should apply to what he is talking about.

If "tail call recursion" means recursing as the last thing you do before returning, then he is saying to send a message as the last thing you do.

AKA send a message as a tail call instead of returning the value of that message.

"a 'tail call' and 'tail call elimination' are 2 completely different things."

Indeed. For those seeking more detailed information about this issue, see:

http://c2.com/cgi/wiki?ProperTailRecursion

http://c2.com/cgi/wiki?TailCallOptimization

http://lambda-the-ultimate.org/classic/message1532.html