I see. Thank you!
Still it's a pity there's no way to tell '/' an initial value without
boxing/unboxing.


   (10000) 6!:2 '>(v~&.>) / 1|.o;;/|. l'

0.0016646


    (10000) 6!:2 '(,:o) v~ reduce |.l'

0.0016654


   (10000) 6!:2 '0[3 : ''q=:q v y'' "0 l[q=:o'

0.0038912


On Tue, Feb 3, 2015 at 7:30 PM, 'Pascal Jasmin' via Programming <
[email protected]> wrote:

>   (,: 'xx')    4 : 'x,''_'',":y'~ reduce  1 2 3 4
> xx_4_3_2_1
>
>
>
>
>
> ----- Original Message -----
> From: Moon S <[email protected]>
> To: [email protected]
> Cc:
> Sent: Tuesday, February 3, 2015 12:20 PM
> Subject: Re: [Jprogramming] Fold/reduce with initial value?
>
> boxscan/reduce neary works:
>
>    boxscan =: ((&.>)/)(>@:)
>
>    reduce =: 1 : '([: u boxscan ,~)&(<"_1)'
>
>    o v~ reduce l
>
> x_x_4_3_2_1
>
>
> On Tue, Feb 3, 2015 at 7:05 PM, 'Pascal Jasmin' via Programming <
> [email protected]> wrote:
>
> > if everything is the same shape, then the easy way
> >
> >   100  ,~   i.5
> > 0 1 2 3 4 100
> >
> >   -~/ 100  ,~   i.5
> > 90
> >
> >
> > An adverb that works when the items you want to reduce are not (or may
> not
> > be) the same shape as the (initial value and) final answer
> >
> > boxscan =: ((&.>)/)(>@:)
> >
> >   100    ([:-~boxscan ,~)&(<"_1) i.5
> > 90
> >
> >
> >   100    ([:(- +/"1)~ boxscan ,~)&(<"_1) i.5 2
> > 55
> >
> >
> > then as an adverb,
> >
> > reduce =: 1 : '([: u boxscan ,~)&(<"_1)'
> >
> >   100    (- +/"1)~ reduce i.5 2
> > 55
> >
> >
> >   100    (- +/"1)~ reduce 0 1 ,: 2 3
> > 94
> >
> >
> >
> > ----- Original Message -----
> > From: Moon S <[email protected]>
> > To: [email protected]
> > Cc:
> > Sent: Tuesday, February 3, 2015 11:15 AM
> > Subject: [Jprogramming] Fold/reduce with initial value?
> >
> > I have a list (l), some object (o) and a verb (v) modifying the object:
> >
> > l = l_0 l_1 ... l_n
> > o_new = o_old v l_i
> >
> > The list items and the object have different types. I want to apply all
> the
> > list items to the object:
> >
> > o_new = (...((o_old v l_0) v l_1) ... v l_n)     NB. the order of items
> > doesn't matter
> >
> > Currently I do it like this:
> >
> > o =: o_old
> > 3 : 'o =: y v o' "0 l
> >
> > I suspect, there must be some built-in feature for that, like / or ^:, so
> > that I could write e.g.
> > o_new =: o_old v REDUCE l, but I couldn't find a suitable
> > verb/adverb/conjunction.
> >
> > Any help?
> >
> > Thank you.
> >
> > Georgiy Pruss.
> > ----------------------------------------------------------------------
> > 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