On Thu, Mar 25, 2010 at 18:57, Steven D'Aprano <st...@pearwood.info> wrote: > Simply put: we should treat "two unclear values are different" as more > compelling than "two unclear values are the same" as it leads to fewer, > smaller, errors. Consider: > > log(-1) = NAN # maths equality, not assignment > log(-2) = NAN > > If we allow NAN = NAN, then we permit the error: > > log(-1) = NAN = log(-2) > therefore log(-1) = log(-2) > and 1 = 2 > > But if make NAN != NAN, then we get: > > log(-1) != log(-2) > > and all of mathematics does not collapse into a pile of rubble. I think > that is a fairly compelling reason to prefer inequality over equality. > > One objection might be that while log(-1) and log(-2) should be > considered different NANs, surely NANs should be equal to themselves? > > -1 = -1 > implies log(-1) = log(-1)
IMO, this just shows how ludicrous it is to compare NaNs. No matter what we do it will imply some insane mathematical consequence implied and code that will break. They are, after all, an error passed silently. Why is it complex can raise an exception when sorted, forcing you to use a sane (and explicit) method, but for NaN it's okay to silently fail? -- Adam Olsen, aka Rhamphoryncus _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com