For example,

julia> isequal(NaN,NaN16)
true

julia> isequal(NaN,NaN32)
true

This is of course documented in the manual, what I would like to
understand is the motivation for this design decision. Some languages
have a progression of equality predicates --- eg Common Lisp has EQ,
EQL, EQUAL, and EQUALP, each more permissive than the next one. But ==
and isequal do not nest, since NaN's are of course not == to anything
under IEEE, even themselves.

Before reading about this in the manual, I thought of isequal as object
identity ("A and B are equal when they cannot be distinguished"), but
apparently that's the wrong concept.

Just curious -- there must be a good reason and I would like to know it.

Best,

Tamas

Reply via email to