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