[Python-3000] range() issues

Guido van Rossum guido at python.org
Tue Apr 29 01:21:14 CEST 2008


BTW, if you're looking for a term describing range() that's better
than set or sequence, how about "series"? It's a mathematical word
that matches pretty exactly. (More accurately, I believe it's an
algebraic series.)

On Mon, Apr 28, 2008 at 4:18 PM, Guido van Rossum <guido at python.org> wrote:
> On Sun, Apr 27, 2008 at 4:07 AM, Alexander Belopolsky
>  <alexander.belopolsky at gmail.com> wrote:
>  > On Sat, Apr 26, 2008 at 2:49 PM, Facundo Batista
>  >  <facundobatista at gmail.com> wrote:
>  >
>  >
>  > >  Which should the range() definition be, in your words?
>  >
>  >  In terms of ABCs,  range(..) is a Sized Iterable in the current
>  >  implementation.  It is not a Sequence because it is not a Container
>  >  and does not support slicing.  The idea to support x in range(..) was
>  >  discussed last year [1]  and appears to have been accepted but not
>  >  implemented. I understand that slicing support is in the works. [2]
>  >
>  >  I believe it would make sense to turn range(..) into a Sequence.  Here
>  >  are my reasons:
>  >
>  >  1. It will be easy to explain what range(..) is: "a sequence of
>  >  integers from start to stop, excluding stop, skipping step".
>  >
>  >  2. There will be fewer 2 to 3 incompatibilities.
>  >
>  >  [1] http://mail.python.org/pipermail/python-3000/2007-July/009028.html
>  >  [2] http://bugs.python.org/msg65807
>
>  I'm -0 on this (and on other recent enhancements like indexing and the
>  proposed repr() enhancement).
>
>  The reason that I'm so lukewarm is that I don't expect there to be
>  much use for all this extra functionality. Teachers who want to show
>  their students what range(x, y, z) is can just cast it to a list.
>
>  The cost of the extra functionality: writing it, reviewing it, adding
>  unittests, documenting it, maintaining it, making sure it works on
>  64-bit machines, having Python book authors discuss it; and in
>  addition some extra baggage in the executable that is never needed
>  (but I think the other reasons are more compelling). There's a reason
>  the xrange() object didn't have all this extra baggage.
>
>  Remember, one of the goals of Py3k is to *shrink* the language so that
>  it will fit in your brain again. This thread seems to be going in the
>  opposite direction.
>
>  --
>  --Guido van Rossum (home page: http://www.python.org/~guido/)
>



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


More information about the Python-3000 mailing list