Range Operation pre-PEP

Alex Martelli aleaxit at yahoo.com
Wed May 9 09:15:54 EDT 2001


"Carlos Ribeiro" <cribeiro at mail.inet.com.br> writes:
> At 12:23 09/05/01 +0200, Alex Martelli wrote:
> >Getting beginners used to inclusive-upper-end idioms
> >and then having them trip over exclusive-upper-end
> >ones elsewhere later is NOT doing them any favour.
>
> Ok, I'm in brainstorm mode. You're warned :-) Some weird ideas are just
> popping out of my mind:
>
> 1) Have both ':' and '..' as range operators. ':' excludes the last
> element, '..' includes it. This is a very simple rule-of-thumb. A beginner
> may be confused, but it's not something hard to learn.

I think it might be -- I see no graphical suggestion of the
behavior differences.

> 2) Force the construct to be specified inside brackets or parenthesis,
> pretty much like list comprehensions.

I like the ideas of brackets for that.
    for i in [a:b]
just looks so neat...:-).

> 3) If (2) is approved, then the step operator becomes a natural extension
> of the list comprehension syntax:
>
>  >>> [1..5 step 2]
> [1,3,5]
>  >>> [1:5 step 2]
> [1,3]
>
> It's clear, readable and unambiguous.

Sure does.  I wonder if 'step' would have to become a keyword here
(presumably a no-go) or if it could be "fudged" the way non-keyword
"as" was added to import and from statements.


Alex






More information about the Python-list mailing list