On Thu, Apr 23, 2009 at 12:52 PM, Jon Harrop <[email protected]> wrote:

> > http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html
> Not worth reading. Guido has absolutely no idea what he is talking about and
> is probably the last person on Earth you should listen to in this context.

I profoundly disagree.

His points labeled "First" and "Second" are true: TCO does destroy
stack trace information, and people would (and should) come to depend
on TCO if it was available.

His point labeled "Third" is a matter of opinion.

His point labeled "Last" (which is not the last) is solely about tail
*recursion*, rather than about tail calls in general, and correctly
makes the point that in Python you cannot tell when you are dealing
with the former rather than the latter, because the meaning of a name
(including the name of the currently executing function) can change
dynamically.

His points labeled "Still" discusses possible approaches for detecting
increasingly more "advanced" versions of tail calls, quite soundly.

His final point (unnamed) correctly remarks that Python and C are
generally intertwingled, and that since C does not have TCO, even a
full Python implementation of TCO can still blow out the stack due to
Python-C-Python-C recursion.  The same is true of at least some Scheme
implementations with TCO, such as Chicken and Kawa.

-- 
GMail doesn't have rotating .sigs, but you can see mine at
http://www.ccil.org/~cowan/signatures

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to