From: "Raul Miller" <[EMAIL PROTECTED]> wrote: > On 4/14/08, Mark D. Niemiec <[EMAIL PROTECTED]> wrote: > > True. However, I think that in this case, _. shouldn't be > > produced at all (for much the same reason that J treats 0 = 0*_ > > and 0 = 0%0, even though the hardware produces NaN in both cases.) > > But 0 and _ are consistent arguments. > > Mathematically speaking, _. is an inconsistent argument.
I agree. However, the point I was trying to make is that 0+._ should be _, just like 0*_ and 0%0 are. These all have consistent arguments, and the hardware produces NaN, but in the latter two cases, the interpreter explicitly overrides the IEEE specification by producing a more mathematically consistent and elegant meaningful value. My only complaint here with arguments of _. is that they should produce meaningless values or exceptions - NOT hangs or crashes. I suppose one could use the rationale that _ = */everything (which would explain y = _|y), and say that y = |+.y; adding such a rule would also require an explicit check, and is incompatible with _=0+._ (since it would imply that 0=0+._), so in this case, NaN=0+._ would make sense (but just in the same sense that 0=0%y and 1=y%y and _=y%0 would imply that NaN=0%0, which IEEE considers compelling, but J does not.) NaNs (physical or virtual) make my brain hurt. -- Mark D. Niemiec <[EMAIL PROTECTED]> ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
