You could translate your psuedocode to J with this:

X=:3
myVerb =: 3 : 0
  'y1 y2 y3 y4' =. 4 {. y
  X=: # y
)
_4 myVerb\ i.10



On Tue, Dec 2, 2014 at 9:09 PM, Jon Hough <[email protected]> wrote:

> I do not think updating y is what I need in this case.In pseudocode, an
> example is
> x = 3; //just some start value for xy; //some arrayfor (i = 0; i < max;
> i+= 4){ x = myVerb(x, y[i], y[i+1], y[i+2], y[i+3]); //my verb is
> equivalent(~ish) to  verb u.}
> return x;
> So I thought using u\ would be a good way to do the forloop. The problem,
> of course, is that the previous iteration's result of myVerb is the next
> iterations myVerb parameter.
> I'm not wedded to the idea of using u\, and I am beginning to wonder if it
> is completely inappropriate for doing this.
> > Date: Wed, 3 Dec 2014 01:27:39 +0000
> > From: [email protected]
> > To: [email protected]
> > Subject: Re: [Jprogramming] Modifying x inside Infix
> >
> > The argument to 4 u\ y will be entirely y, and u is monadic.
> >
> > you can do something like this though:
> >
> > 2 (3&+)\ i.5
> > 3 4
> > 4 5
> > 5 6
> > 6 7
> >
> >
> > If you can change your spec to "updating y" on every iteration, and you
> want to apply to:
> >
> > x1 u (x2 u y)
> > then you can make a table where x1, x2 and y are the 3 rows, and then
> call with u/.  You can search for boxscan in archives for method where x
> and y are not the same shape.  This is generally preferable to trying to
> keep a side effect between calls (so you don't need to worry about
> initializing it)
> >
> >
> > ________________________________
> > From: Jon Hough <[email protected]>
> > To: "[email protected]" <[email protected]>
> > Sent: Tuesday, December 2, 2014 7:58 PM
> > Subject: [Jprogramming] Modifying x inside Infix
> >
> >
> > If y is a list and I have a dyadic verb u, which I want to apply to
> every 4 items of y I can do
> >
> > x ( 4 u \) y
> >
> >
> > and this will apply x u to every 4 items.
> >
> >
> > But I want to continually update x every iteration. So after doing x u y
> to the first 4 items, x becomes the result,
> >
> >
> > i.e. x =: x u y
> >
> >
> > How do I do this for all the list?
> >
> >
> > I tried things like
> > result =:  leftArg ( 4 (leftArg =:) u \ )rightArg
> >
> >
> > but I can't get the correct syntax (assuming there is a way to do this).
> > (I hope my explanation made sense.)
> > Thanks.
> >
> >
> >
> >
> >
> >
> >
> >
> > ----------------------------------------------------------------------
> > 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