On Sat, Jan 12, 2013 at 11:41 PM, Jose Mario Quintana >> It's arguably a bug because [something seems to be missing here]. That >> said, there are two possible ways the bug can be identified:
It's arguably a bug because it gives two different results for otherwise equivalent operations. And, because this distinction is not supported by anything in the dictionary. >> a) It's a bug because the result of +:@*: d. 1 has infinite rank while >> the dictionary says that +:@*: is being treated as if it has zero rank > >> b) It's a bug because we should never use the result of d. at any rank >> other than 0. > > My simple minded guess is that the implementation of d. regarding (@) > and (@:) works reasonably well, although the rank change from 0 to _ > seems arbitrary, but it stumbles for (at) and ([:), I have no idea what "works reasonably well" means. But consider also: AT=: 2 :0 u@v"v ) +:AT*: d. 1 0 4x&p."0 0 0 +:@*: d. 1 0 4x&p. In both cases the rank of the left argument of d. is the same. So what we see here is that the rank of the result of d. depends on something other than the rank of its arguments. Have you found any documentation that describes the rank of the results of the d. conjunction? -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
