Hi, please consider this: ((0,:2),:(2,:2)) (< @: +: @: ]);.0 i. 4 +---+---+ |0 1|2 3| +---+---+ ((0,:2),:(2,:2)) (< @: (+/) @: ]);.0 i. 4 +---+---+ |0 1|2 3| +---+---+ ((0,:2),:(2,:2)) (< @: (\:~) @: ]);.0 i. 4 +---+---+ |0 1|2 3| +---+---+
No issues in 8.07; and a bug (that's what I'd call it) in 9.03 and 9.04. Looks like it happens if the left arg has multiple ranges; and a verb to apply is composed with "same" and "box" verbs as first and last in sequence. But it's at 1st glance only. Sometimes omitting parentheses would help (which clearly means parsing issue?). All these produce expected output: (2,:2) (< @: +: @: ]);.0 i. 4 +---+ |4 6| +---+ ((0,:2),:(2,:2)) (] @: +: @: ]);.0 i. 4 0 2 4 6 ((0,:2),:(2,:2)) (< @: +/ @: ]);.0 i. 4 +-+-+ |1|5| +-+-+ (0,:2) (< @: (\:~) @: ]);.0 i. 4 +---+ |1 0| +---+ ((0,:2),:(2,:2)) (] @: (\:~) @: ]);.0 i. 4 1 0 3 2 ((0,:2),:(2,:2)) (< @: (\:~));.0 i. 4 +---+---+ |1 0|3 2| +---+---+ While "why would you want to use the ']' here?" would be reasonable to ask, but, in the end, syntax is either correct or not. In fact, I was testing all kinds of different constructs investigating why multi-threaded operation (with "t.") on subarrays is so much slower than expected, although it's perhaps totally unrelated to what's discovered above. Best regards, Vadim ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm