Another approach: (apply each~ +:`-: $~ $) 4 2 3 0 ┌─┬─┬─┬─┐ │8│1│6│0│ └─┴─┴─┴─┘
Except apply isn't quite right, since it's looking for a string representing a verb and it's not always the case that the part of the gerund inside the box is a string representing a verb. So, perhaps better: invoke=:4 :'x`:0 y' (invoke"0~ +:`-: $~ $) 4 2 3 0 8 1 6 0 Good enough? Thanks, -- Raul On Sat, Aug 8, 2015 at 8:12 PM, 'Pascal Jasmin' via Programming <[email protected]> wrote: > -`+/ will insert alternating - then + between items of argument. Those are > dyadic verbs, and they have to be. > > Still the idea of applying monads to alternating items in a list must have > occurred to others too. One technique is: > > ('+:';'-:') apply each 4 2 > ┌─┬─┐ > │8│1│ > └─┴─┘ > > but this doesn't have the auto expansion that gerunds and / have. A solution > > (] ,~ -:@:[)`(] ,~ +:@:[)/ 3 4 2 0 > 1.5 8 1 0 > > > where the trailing 0 is a pad that doesn't get processed. > > With my version of strand notation and double adverbs at > http://www.jsoftware.com/jwiki/PascalJasmin/functional%20algebra%20and%20double%20adverbs%20part%202 > > This can be made into a clean adverb that adds its own pad, and then removes > the pad after processing. (needs many definitions from that page). all one > line. > > altMs =: 'lrT (''[: }: [:''&,)@:(,&''/ {:,~]'')@:(''`''&joinstring)@:(([: > ''(] ,~''&, ,&''@:[)'' )each) @:( {."1) v2a eval' aatrain > > 9: -: +: altMs NB. 9: closes strand input > [: }: [: (] ,~ -:@:[)`(] ,~ +:@:[)`:3 {: ,~ ] > > > 9: -: +: altMs 3 4 5 6 NB. verbs get inserted left to right > 1.5 8 2.5 12 > > > 9: -: +: *: altMs 3 4 5 6 7 > 1.5 8 25 3 14 > > > 9: *: (-: +: altMs) NB. expression in brackets is assignable adverb > [: }: [: (] ,~ *:@:[)`(] ,~ -:@:[)`(] ,~ +:@:[)`:3 {: ,~ ] > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
