True == 1 weirdness

Steven D'Aprano steve at
Fri Sep 18 15:14:52 CEST 2015

On Fri, 18 Sep 2015 10:47 pm, Random832 wrote:

> On Fri, Sep 18, 2015, at 08:30, Steven D'Aprano wrote:
>> On Fri, 18 Sep 2015 07:26 am, Random832 wrote:
>> > I don't even think chaining should
>> > work for all *actual* comparison operations.
>> I don't see why. Mathematicians chain comparisons all the time. If the
>> language implements the same semantics as mathematicians already use, why
>> do you dislike that?
> Please provide a citation for this claim.

Really? You're disputing that chained comparisons are a standard maths

Mathworld, for example, says:

    Solutions to the inequality |x-a|<b consist of the set {x:-b<x-a<b},
    or equivalently {x:a-b<x<a+b}.

>> Only if the comparisons are transitive, which they may not be.
> My *entire point* is that it *shouldn't be used* for non-transitive
> comparisons!!!

And my point is that there is no good reason for such a restriction, even if
it were technically possible to enforce (which it is not).

The mathematical chained notation doesn't rely on, or imply, transitivity.
Given a < b < c, *if* the operator is transitive, then AND ONLY THEN can
you conclude that a < c, but that's not implied by the chaining. It happens
to be true for real numbers, but it isn't necessarily true.


More information about the Python-list mailing list