Thank you to both Roger & Fraser, makes perfect sense.

> From: Roger Hui
> 
> You need an explicit indication that the dyadic
> case is being defined.  Thus:
> 
>    foldl=: 1 : (':'; 'u/ x,y')
>    0 -foldl >:i.5
> _3
> 
> 
> 
> From: "Sherlock, Ric" 
> > > From: Viktor Cerovski
> > > It is a bit more complicated:
> > >
> > >     foldl1 =: /
> > >     foldr1 =: ~/(@:|.)
> > >
> > > as in:
> > >
> > >     - foldl1 1 2 3 4  NB. (1-(2-(3-4)))
> > > _2
> > >
> > >     - foldr1 1 2 3 4  NB. (((1-2)-3)-4)
> > > _8
> > >
> > > but I (still) don't think there is an easy way to define foldl and
> > > foldr in
> > > J.
> >
> > I had come up with similar adverbs for foldl1 and foldr1 and was
> > trying to define adverbs that took the initial value as a left
> > argument to define foldl and foldr.
> >
> > Can anyone help me understand why these don't work?
> >
> >    ]lst=: >: i. 5
> > 1 2 3 4 5
> >    foldl=: 1 : 'u/ x,y'
> >    0 - foldl lst
> > |domain error
> > |   0    -foldl lst
> >    foldr=: 1 : 'u~/@:|. x,y'
> >    0 - foldr lst
> > |domain error
> > |   0    -foldr lst

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to