A fixed tacit Calvinian ( http://www.gocomics.com/calvinandhobbes/1993/01/25 ) version of monex follows :)
NB. The usual suspects... an=.<@:((,'0') ,&< ]) evoke=. (<'`:')(0:`)(,^:) invoke=. <@:(evoke&0)@:[ (evoke&6)@:, an@:] monex =: ($~$) invoke f."0 ] +:`-: monex 4 2 1 6 8 1 2 3 *:`%: monex i. 5 0 1 4 1.73205081 16 On Sun, Aug 9, 2015 at 6:02 AM, Jan-Pieter Jacobs < [email protected]> wrote: > Only an incremental improvement, but taking out the gerund from the > train, one can use this as a general purpose tool, independent from > the monads to execute and the data: > > invoke =: 4 :'x`:0 y' > monex =: ($~$) invoke"0 ] > > +:`-: monex 4 2 1 6 > 8 1 2 3 > *:`%: monex i. 5 > 0 1 4 1.73205 16 > > > 2015-08-09 6:45 GMT+02:00, 'Pascal Jasmin' via Programming > <[email protected]>: > > cool. to do what I was going for, > > > > (invoke"_1~ +:`-: $~ #) i. 3 3 > > 0 2 4 > > 1.5 2 2.5 > > 12 14 16 > > > > in strand notation > > > > lrS =: 'lrT {."1 v2a' aatrain > > > > 9: -: +: lrS > > ┌────┬────┐ > > │(-:)│(+:)│ > > └────┴────┘ > > > > > > (apply every~ 9: *: +: -: lrS $~ #) 3 2 5 4 > > 9 4 2.5 16 > > > > > > > > > > ----- Original Message ----- > > From: Raul Miller <[email protected]> > > To: Programming forum <[email protected]> > > Cc: > > Sent: Saturday, August 8, 2015 11:39 PM > > Subject: Re: [Jprogramming] a trick for monadic gerund and / > > > > 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 > > ---------------------------------------------------------------------- > > 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
