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