Would there be support for a more general cmp/__cmp__
Christopher Subich
csubich.spam.block at spam.subich.block.com
Tue Oct 25 09:25:09 EDT 2005
Antoon Pardon wrote:
> It *is* a definition of an ordering.
>
> For something to be an ordering it has to be anti symmetric and transitive.
>
> The subset relationships on sets conform to these conditions so it is a (partial)
> ordering. Check your mathematic books, Why you would think this is abuse is beyond me
Which is exactly why a < b on sets returns True xor False, but cmp(a,b)
throws an exception.
a <COMPARE> b is a local comparison, asking only for the relationship
between two elements. In some bases, like the complex numbers, some
comparisons are ill-defined.; in others, like sets, they're well-defined
but don't give a total ordering.
cmp(a,b) asks for their relative rankings in some total ordering. For a
space that does not have a total ordering, cmp(a,b) is meaningless at
best and dangerous at worst. It /should/ throw an exception when the
results of cmp aren't well-defined, consistent, antisymmetric, and
transitive.
More information about the Python-list
mailing list