Why is everyone quoting 3!:3 all of a sudden? What is 3!:3]42=$0 supposed to demonstrate? What about 3!:3]'Q'=$0 ? The only interesting byte I see in either result is 2nd row, 2nd column, which indicates the result type is boolean, which is what you would expect from a logical comparison like = .
By the way, in the context of the current discussion, it would be more useful to quote 3!:0 which gives the datatype of the argument. All the rest of the output of 3!:3 is just noise to that signal. >The result's domain as a side effect of a loose type language seems to be >at the center of the argument... What is the argument? That empty arrays of type A should not match empty arrays of type B when A isn't B? To me, the crux of THAT argument lies in 1 = *./'' . For the details of my thoughts on this, see: http://www.jsoftware.com/pipermail/general/2005-November/025629.html If the argument is whether a: should be documented as <$0 or <0$0 , then: datatype $0 integer datatype 0$0 boolean datatype >a: boolean But, since ($0)-:0$0 (and even ($0) -:&{. 0$0), REGARDLESS of the reasons, then <$0 is not wrong; so what matters it? -Dan ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
