On Sun, 01 Jul 2012 10:37:05 +1000, Chris Angelico wrote: > On Sun, Jul 1, 2012 at 10:08 AM, Ben Finney <ben+pyt...@benfinney.id.au> > wrote: >> Thomas Jollans <t...@jollybox.de> writes: >> >>> My sole point, really, is that "normally", one would expect these two >>> expressions to be equivalent: >>> >>> a < b < c >>> (a < b) < c >> >> What norm gives you that expectation? That's not how those operators >> work in mathematical notation. I know of no programming language that >> would give a newcomer to Python that expectation. So where is the norm >> you're referring to? > > C, SQL, REXX, and many other languages.
All the worse for those languages, since they violate the semantics of mathematical notation. The more I learn about C, the less I want to know about C. What sort of crazy language designer thought that having 2 == 2 == 2 return 0 (false) was a good idea? At least Pascal gives an error, since you can't compare bools with longints, and forces you to write: (2 = 2) and (2 = 2) Sheer craziness for C to abuse mathematical notation like that. But what is one to expect from a language where (unsigned)-1 == -1 apparently is true. http://nitoprograms.blogspot.com.au/2011/05/signed-and-unsigned- comparisons-in-c-c.html -- Steven -- http://mail.python.org/mailman/listinfo/python-list