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

Steven D'Aprano steve at REMOVE.THIS.cybersource.com.au
Tue Jun 12 19:32:38 EDT 2007


On Tue, 12 Jun 2007 15:51:07 -0700, 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?


They can and do -- some compilers optimize tail-recursion into iteration.

Python doesn't, as a deliberate design decision, because to do so would
lose traceback information.


-- 
Steven.




More information about the Python-list mailing list