[Python-Dev] Lukewarm about range literals (original) (raw)

Greg Ward gward@mems-exchange.org
Wed, 30 Aug 2000 13:52:36 -0400


On 29 August 2000, Ka-Ping Yee said:

I think these examples are beautiful. There is no reason why we couldn't fit something like this into Python. Imagine this:

- The ".." operator produces a tuple (or generator) of integers. It should probably have precedence just above "in". - "a .. b", where a and b are integers, produces the sequence of integers (a, a+1, a+2, ..., b). - If the left argument is a tuple of two integers, as in "a, b .. c", then we get the sequence of integers from a to c with step b-a, up to and including c if c-a happens to be a multiple of b-a (exactly as in Haskell).

I guess I haven't been paying much attention, or I would have squawked at the idea of using anything other than ".." for a literal range.

If this operator existed, we could then write:

for i in 2, 4 .. 20: print i for i in 1 .. 10: print i*i

Yup, beauty. +1 on this syntax. I'd vote to scuttle the [1..10] patch and wait for an implementation of The Right Syntax, as illustrated by Ping.

for i in 0 ..! len(a): a[i] += 1

Ugh. I agree with everythone else on this: why not "0 .. len(a)-1"?

    Greg