John Zenger wrote: > I strongly agree that Python should promote range or xrange to syntax. I > favor [0..10] rather than [0:10] because 0..10 is inherently easier to > understand.
"Inherently"? You mean people are born with an instinctive, unlearnt understanding of ..? Or that our brains are constructed in such a way that .. is easier to understand? For what it is worth, even after years of Python programming, I still sometimes write this: for i in len(myList): # Oops. I too prefer range() or xrange() over magic syntax, but I'm not especially a lover of the range() idiom. How about this? With the introduction of a single keyword, we could do this: for i in 2 to 5: print i, which would print 2 3 4 5 (I'm open to arguments that it should be more Pythonic and less mathematical, and halt at 4.) A second keyword "downto" would allow easy backwards loops, and a third "step" will absolutely kill any chance of Guido agreeing to this whatsoever. > Haskell also has a good step notation. In Haskell: > > [1..10] means [1,2,3,4,5,6,7,8,9,10] > [1,3..10] means [1,3,5,7,9] I'm wary of that notation. It is too easy to make typos, what with , and . next to each other, and the typos often will not raise an exception but will simply give incorrect but puzzling behaviour. This isn't unique to the proposed syntax (e.g. under Python today it isn't obvious whether [0,3] is a typo for [0.3]) but it gives me pause. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list