[Python-Dev] Re: More int/long integration issues

Guido van Rossum guido@python.org
Thu, 20 Mar 2003 17:33:35 -0500


> Guido van Rossum <guido@python.org> writes:
> 
> > The bytecode compiler should be clever enough to see that you're
> > writing
> >
> >   for i in range(...): ...
> >
> > and that there's no definition of range other than the built-in one
> > (this requires a subtle change of language rules); it can then
> > substitute an internal equivalent to xrange().
> 
> Ouch!  What happens to:
> 
>        def foo(seq):
>            for x in seq:
>                ...
> 
>        foo(xrange(small, really_big))
> 
> if xrange dies??

Good point.  I guess xrange() can't die until range() becomes an
iterator (which can't be before Python 3.0).

Hm, maybe range() shouldn't be an iterator but an interator
generator.  No time to explain; see the discussion about restartable
iterators.

--Guido van Rossum (home page: http://www.python.org/~guido/)