here is the relevant discussion: https://github.com/JuliaLang/julia/issues/5314
On Friday, December 18, 2015 at 8:09:10 AM UTC-5, Tamas Papp wrote: > > 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 >