On Mon, Jan 21, 2013 at 3:58 AM, Linda Alvord <lindaalv...@verizon.net> wrote: > However, I do not understand how ic and ic2 agree when they don't!
I will agree that they do not agree: ic =. [: , ([: i: 9&o.) j./ ([: i: 11&o.) ic2 =. [: , j./&i:/@+. $ ic 1 2 3 63 $ ic2 1 2 3 21 However they do agree when they are used at rank 0: *./,(ic -: ic2)"0 (i:10) j./ (i:10) 1 I think that the point here is that no one has described any reason to use them in any way other than rank 0. Personally, I sometimes wish that a rank decoration or other modifier on an explicit definition would not interfere with debugging. I think that this issue introduces two different phrasing styles, and there's a tension between them that I am not totally sure is good for us. On the other hand, being overly general is often also a problem, so maybe this is better addressed in our descriptions and thoughts than in our code. Still... I sometimes wonder if perhaps we ought to introduce a new grammatical production so that (name 0=: value) was equivalent to (name =: value"0). Or maybe that would be cleaner if it were phrased as (name ("0)=: value)? Anyways, back to your "I do not understand" statement. I think that the issue here is the definition of "agree" that we are using. And, since you presented the display forms of ic and ic2 as illustrations of what you did not understand, and since I presented results of example evaluations as illustrations of what I thought I understood, I think I'm on fairly solid ground, here. -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm