[plt-scheme] guido on tail recursion

From: Shriram Krishnamurthi (sk at cs.brown.edu)
Date: Sat Apr 25 14:42:46 EDT 2009

It is dangerous to use the term "tail recursion" ever, unless you
really, really mean recursion in the very narrow sense by which the
doofus-in-the-street understands it, namely "a function that
*directly* calls itself".

I have seen an especially strong trend amongst MIT folks to use "tail
recursion" to refer to the general case of "a sequence of calls that
eventually result back in the same function, even if indirectly".
This is technically correct, and the meaning of this general phrase
may be obvious to all members of the very highly intelligent species
that populates MIT.  But it confuses the doofus, and that's a problem,
because it leads to the sort of confusion in Guido's message and
ensuing discussion -- on a topic that needs less, not more, confusion.

[Tail calls that do not lead to recursion are still worth optimizing,
but they cannot lead to order-of-complexity increases in size except
in pathological cases, so they are not as interesting to focus on
because that, too, distracts the conversation.]


Posted on the users mailing list.