u@v is u@:v"v. In other words, take every v-cell of x/y, and execute u@:v on it. The order in which x/y are traversed is unspecified, it is true. But invocations of u and v are interleaved with each other, which is clearly different from u"v [x] v y, which executes v many times and than u many times.

Actually, I am realising now that u"v [x] v y is completely wrong. I mentioned 'output rank', but I was not paying sufficient attention. The ranks of cells which v ingests may not be the same as the rank of cell which it produces. Doubly so if the output rank is variable and so padding is required.

On Mon, 27 Jun 2022, Raul Miller wrote:

On Mon, Jun 27, 2022 at 9:48 PM Elijah Stone <elro...@elronnd.net> wrote:
That does not account for sequencing of side effects between invocations of u
and v.

That's a good point, though I suppose that some might argue that this
is an implementation detail (a detail which has been stable throughout
the history of the language).

--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to