You've lost me with this argument. I have, on a number of occasions used v0`v1`v2}~ y ... and in every one of those cases, v0, v1 and v2 only referenced y. So almost invariably, one or more of those constituent verbs have had to use the @] construct so that they behave properly (the exceptions mostly were constant verbs which ignored their reference to y and, thus, also ignored their reference to x).
So... I am thinking you might want to work through some useful illustrative examples, here... Thanks, -- Raul On Mon, Sep 17, 2018 at 2:37 PM 'Pascal Jasmin' via Programming <[email protected]> wrote: > > The proposal would be an improvement over the workaround in that in the > derived adverb, a monadic rather than ambivalent function could be provided. > But the workaround solves the problem of forcing a dyadic call even when x > would not be used at all. An alternative would be to use this version for > monadic, and simpler (fewer ~) with dyadic (joined with :), but it makes the > result longer. > > On Monday, September 17, 2018, 1:54:30 p.m. EDT, Raul Miller > <[email protected]> wrote: > > v0 v1 and v2 must all be dyadic. > > I thought the point of your proposal was to allow v0 v1 and v2 in > v0`v1`v2} y to be monadic? > > (Re-reading your original post in this thread, I see that I might be > mistaken. But if you're proposing that they must be dyadic, I don't > think the proposal would be worth bothering with - you're only saving > a single character if you go that route, rather than actively > simplifying expressions which don't benefit from the dyadic context.) > > Thanks, > > -- > Raul > On Mon, Sep 17, 2018 at 1:43 PM 'Pascal Jasmin' via Programming > <[email protected]> wrote: > > > > > > > > a workaround solution to making v0`v1`v2} monadic append is to append ~ to > > }. For example a function that fills in a default value: > > > > dfltT =: 1 : '(<@)~(`(m"_))(`[)}~(^:('''' -: m {:: ]))' > > > > > > (0 +:@:{:: ]) 1 dfltT > > > > <@(0 +:@:({::) ])~`(1"_)`[}~^:('' -: 1 {:: ]) > > (0 +:@:{:: ]) 1 dfltT 2 ; '' > > > > ┌─┬─┐ > > > > │2│4│ > > > > └─┴─┘ > > > > (0 +:@:{:: ]) 1 dfltT 2 ; 3 > > > > ┌─┬─┐ > > > > │2│3│ > > > > └─┴─┘ > > the v0 function can/must be dyadic, and accesses full x and y in the normal > > locations ([]). > > > > > > > > > > > > On Monday, September 17, 2018, 11:36:17 a.m. EDT, 'Pascal Jasmin' via > > Programming <[email protected]> wrote: > > > > > > > > > > > > Not that I've seen the implementation code, but the thought is that none of > > the optimizations would be affected if at a high level > > v0`v1`v2} is always amend (regardless of valence) > > v0`v1} is always composite item. > > My proposal was/is to allow the composite item version to be ambivalent > > (for definitional simplicity and convenience), but its not what I care > > about. Its just the first version that has no current use monadically. > > The pattern where monadic amend is useful is when y is a boxed record > > structure where data in one field can help update another field. Or > > simplicity when the update value is a function of the data. > > > > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
