On Thursday 23 April 2009 21:18:50 John Cowan wrote: > 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:
His entire post is supposed to be explaining why "Tail Recursion Elimination" should not be implemented in Python and, in that context, his points are all entirely invalid. Moreover, the broken terminology makes it clear that he has no idea what he is talking about. > TCO does destroy stack trace information, So make it optional. > and people would (and should) come to depend on TCO if it was available. That is true of any useful feature. > His point labeled "Third" is a matter of opinion. His third point is that he believes that arrays are more "useful" than recursion. That is irrelevant nonsense. > His point labeled "Last" (which is not the last) is solely about tail > *recursion*, rather than about tail calls in general, His entire post is only about recursion. Indeed, he does not appear to even know what a tail call is and makes no mention of anything that tail calls facilitate. > 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. That is one of the really serious problems with Python but it is irrelevant here. > His points labeled "Still" discusses possible approaches for detecting > increasingly more "advanced" versions of tail calls, quite soundly. Utter nonsense. There is no such thing as an "advanced" tail call. This confusion only arose because Guido has absolutely no idea what he is talking about. In reality, tail calls are easy to define and easy to identify. There is no merit in pretending otherwise. > 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 F# and C# but it has never caused me a problem. The reason is, of course, that Guido's argument has no basis in reality whatsoever because he has no practical experience of this at all and has absolutely no idea what he is talking about. He is just fear mongering. You would get an equally accurate technical discussion in an asylum. Reading Guido's blog post was a complete waste of time. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
