Python's "only one way to do it" philosophy isn't good?

John Nagle nagle at animats.com
Tue Jun 12 19:16:35 EDT 2007


Steve Howell wrote:
> --- "Anders J. Munch" <2007 at jmunch.dk> wrote:
> 
>>Converting tail-recursion to iteration is trivial,
>>and perfectly reasonable for 
>>a human to do by hand.  You add an outer "while
>>True"-loop, the recursive call 
>>becomes a tuple assignment, and other code paths end
>>with a break out of the 
>>loop.  Completely mechanical and the resulting code
>>doesn't even look that bad.
>>
> 
> 
> I have to ask the stupid question.  If a human can do
> this completely mechanically, why can't a machine?

    That's what tail recursion optimization is.

    It's not a high-priority optimization for CPython.
The language has good iteration primitives, so iterating
via simple recursion is relatively rare and not, typically,
a performance bottleneck.  In LISP, one might iterate over
a list using tail recursion, but in Python, that would be
both silly and inefficient.

				John Nagle



More information about the Python-list mailing list