[Python-Dev] Rich comparison confusion
Michael Hudson
mwh21@cam.ac.uk
22 Jan 2001 00:48:16 +0000
Greg Ewing <greg@cosc.canterbury.ac.nz> writes:
> Guido:
>
> > I don't understand how these can be not commutative unless they have a
> > side effect on the left argument
>
> I think he meant "not reflective". If a<b == floor(a,b) and a>b ==
> ceil(a,b), then clearly a<b != b>a.
What's floor of two arguments? In common lisp, (floor a b) is the
largest integer n such that (<= n (/ a b)), in Python it's a type
error... if you meant min(a,b), then I then think the programmer who
thinks "min(a,b)" is spelt "a<b" has problems we can't be expected to
deal with (if min has a symbol it's /\, but never mind that).
More generally, people who define their comparison operators in
non-intuitive ways shouldn't really expect intuitive behaviour. I
thought Guido threatened to document this fact in large letters
somewhere...
Cheers,
M.
--
Premature optimization is the root of all evil in programming.
-- C.A.R. Hoare