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

Reply via email to