[Python-Dev] Rich comparison confusion

Tim Peters tim.one@home.com
2001年1月21日 20:23:27 -0500


[Michael Hudson]
> ...
> 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).

Curiously, in the Icon language, if a is less than b then
 a < b
returns b while
 b > a
returns a.
In this way they get the same effect as Python's chained comparisons
 a < b < c < d
via purely binary operators (if a is *not* less than b, a < b in Icon
"fails", which is a silent event that causes the expression's context to
backtrack -- but we won't go into that here <wink>).
Anyway, that accounts for this curious Icon idiom:
 a <:= b
which is short for
 a := a < b
and binds a to max(a, b) (if a is smaller, a < b returns b and the
assignment proceeds; but if a is not smaller, a < b fails and that
propagates into its context, which here has no other possibilities to
backtrack into, so the stmt just ends leaving a alone).
"<"-and-">"-are-just-bags-of-pixels-ly y'rs - tim

AltStyle によって変換されたページ (->オリジナル) /