Non-numbers (NaN's) could actually be extremely useful in some situations.

For example, many applications need to use distinct "missing values".

We can easily create them. Actually, we can create many distinct ones.

x←1 ⎕dr '7FF0000000000001'

y←1 ⎕dr '7FF0000000000002'

But they way they currently behave makes them essentially useless.

1=x

0

So far, so good.

But not this:

x=x

0

That's just wrong, and too bad.

Yes -- all arithmetic on any NaN should be a NaN -- EXCEPT equality.

x=x should ALWAYS be 1, EVEN if x is a NaN.

On the other hand, the result of x=y is somewhat debatable.

It should probably be 0, but it could possibly be defined by a mechanism similar to ⎕ic.

And another thing ...

Why can't they display differently and more sensibly?

x

N.aNE9998

y

N.aNE9998

Please, let's at least make x=x work right!