u&.> Is backed by special code that avoids explicit boxing and unboxing. And, if the contents of the boxes are inplaceable, u is executed inplace.
Henry Rich On Fri, Jun 17, 2022, 1:39 AM Elijah Stone <elro...@elronnd.net> wrote: > On Thu, 16 Jun 2022, Marshall Lochbaum wrote: > > > You seem to think building these out of boxes makes some philosophical > > difference. I disagree. Boxes are used to implement array nesting. > > I do think it makes a difference. But there is also a practical question: > what patterns does the language encourage? > > It is possible to go even further: boxes do not need to be in the language > at > all, as they can be implemented in userspace (albeit not in a modular > fashion). > > > > No. The marker can be derived as part of the previous operation (*&.>), > so > > making it part of the next one duplicates information. > > *&.> is two operations: multiplying, and boxing. (Actually it's three, > since > it also unboxes, or really four, since it requires that the right argument > be > pre-boxed.) */, or *"_1 _ (same thing) is only one > operation--multiplication--with the rank specifying how the multiplication > is > to be performed (or two, if you consider rank to be an operation unto > itself). > No information is duplicated, then, because, as the result is a flat array > rather than a boxed array, there are multiple ways of joining it. (This > is > also clearly more suggestive.) > > With nests, the operations are: > > - enclose > > - multiply each > > - join > > with boxes, and a requisite 'join', the operations are: > > - multiply at rank > > - join selected axes > > The rank and axis specifications of the latter form speak to its > generality. > > -E > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm