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 -~----------~----~----~----~------~----~------~--~---
