[Python-Dev] range() as iterator (Re: More int/long integration issues)

M.-A. Lemburg mal@lemburg.com
Sat, 12 Apr 2003 13:23:47 +0200


Guido van Rossum wrote:
>>I'd like to work on this.  I've already written a C range() iterator
>>(incorporating PyLongs), and it would be very nice to have it
>>automatically be a lazy range() when used in a loop.
>>
>>In any case, assuming you are quite busy, but would consider this for
>>the 2.4 timeframe, I will do some work on it. If it is already being
>>covered, I'll gladly stay away from it. :)
> 
> range() can't be changed from returning a list until at least Python
> 3.0.

Is this change really necessary ? Instead of changing the semantics
of range() why not have the byte code compiler optimize it's typical
usage:

for i in range(10):
    pass

In the above case, changing the byte code compiler output would
not introduce any change in semantics. Even better, the compiler
could get rid off the function call altogether.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Software directly from the Source  (#1, Apr 12 2003)
 >>> Python/Zope Products & Consulting ...         http://www.egenix.com/
 >>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
EuroPython 2003, Charleroi, Belgium:                        73 days left