[Python-Dev] Lukewarm about range literals
Greg Ewing
greg@cosc.canterbury.ac.nz
Thu, 31 Aug 2000 14:33:36 +1200 (NZST)
Tim Peters <tim_one@email.msn.com>:
> I can't imagine why
>
> for in 0 .. len(a)-1:
>
> isn't *equally* hated! Requiring "-1" in the most common case is simply bad
> design.
I agree with that. I didn't mean to suggest that I thought it was
a good idea.
The real problem is in defining a..b to include b, which gives
you a construct that is intuitive but not very useful in the
context of the rest of the language.
On the other hand, if a..b *doesn't* include b, it's more
useful, but less intuitive.
(By "intuitive" here, I mean "does what you would expect based
on your experience with similar notations in other programming
languages or in mathematics".)
I rather like the a:b idea, because it ties in with the half-open
property of slices. Unfortunately, it gives the impression that
you should be able to say
a = [1,2,3,4,5,6]
b = 2:5
c = a[b]
and get c == [3,4,5].
> for i = 1 to 10: # 1 to 10 inclusive
Endpoint problem again. You would be forever saying
for i = 0 to len(a)-1:
I do like the idea of keywords, however. All we need to do
is find a way of spelling
for i = 0 uptobutnotincluding len(a):
without running out of breath.
Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury, | A citizen of NewZealandCorp, a |
Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. |
greg@cosc.canterbury.ac.nz +--------------------------------------+