[Python-Dev] Lukewarm about range literals (original) (raw)
Fredrik Lundh Fredrik Lundh" <effbot@telia.com
Tue, 29 Aug 2000 09:09:02 +0200
- Previous message: [Python-Dev] Lukewarm about range literals
- Next message: Actually about PEP 202 (listcomps), not (was RE: [Python-Dev] Lukewarm about range literals)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
tim peters wrote:
Charles likes slices. Me too! I love them. But as a standalone notation (i.e., not as a subscript), part of the glory of slicing breaks down: for the list a, a[:] makes good sense, but when iterating over a, it's suddenly [:len(a)] because there's no context to supply a correct upper bound.
agreed. ranges and slices are two different things. giving them the same syntax is a lousy idea.
Post 2.0, who knows. I'm not convinced Python actually needs another arithmetic-progression list notation. If it does, I've always been fond of Haskell's range literals (but note that they include the endpoint):
Prelude> [1..10] [1,2,3,4,5,6,7,8,9,10] Prelude> [1, 3 .. 10] [1,3,5,7,9]
isn't that taken from SETL?
(the more I look at SETL, the more Pythonic it looks. not too bad for something that was designed in the late sixties ;-)
talking about SETL, now that the range literals are gone, how about revisiting an old proposal:
"...personally, I prefer their "tuple former" syntax over the the
current PEP202 proposal:
[expression : iterator]
[n : n in range(100)]
[(x**2, x) : x in range(1, 6)]
[a : a in y if a > 5]
(all examples are slightly pythonified; most notably, they
use "|" or "st" (such that) instead of "if")
the expression can be omitted if it's the same thing as the
loop variable, *and* there's at least one "if" clause:
[a in y if a > 5]
also note that their "for-in" statement can take qualifiers:
for a in y if a > 5:
...
- Previous message: [Python-Dev] Lukewarm about range literals
- Next message: Actually about PEP 202 (listcomps), not (was RE: [Python-Dev] Lukewarm about range literals)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]