Ok, thanks!

Anton Wallgren
On 26 May 2020, 10:43 +0200, 'Rob Hodgkinson' via Programming 
<[email protected]>, wrote:
> It was a later enhancement to forks, see this reference: 
> https://code.jsoftware.com/wiki/Vocabulary/fork 
> <https://code.jsoftware.com/wiki/Vocabulary/fork>
>
> Basically it was felt that the strict 3 verb sequence (v1 v2 v3) called a 
> fork (which is function composition) could be more useful if it allowed a 
> leading noun as (n v2 v3).
>
> Rob
>
> > On 26 May 2020, at 6:36 pm, Anton Wallgren <[email protected]> wrote:
> >
> > Oh, cool! Why does this work? I would have assumed that I needed to write 
> > (10”_ > ]) to achieve the constant function 10.
> >
> > Thanks, Anton Wallgren
> > On 26 May 2020, 10:27 +0200, 'Rob Hodgkinson' via Programming 
> > <[email protected]>, wrote:
> > > Note that for the v function you don’t need to use @, but just a simple 
> > > train of 3 verbs (100 > ]) … consider the 100 a constant function 
> > > returning 100.
> > >
> > > (2&*)^:(10 > ])^:3 ] 1
> > > 8
> > > (2&*)^:(10 > ])^:5 ] 1
> > > 16
> > >
> > >
> > > > On 26 May 2020, at 6:02 pm, Anton Wallgren <[email protected]> wrote:
> > > >
> > > > Yes, maybe for loop is the way to go. It just seems very un-J :). I did 
> > > > try f^:v^:n earlier, but it didn’t work, it ran f 2*n times. But when I 
> > > > try it now with my simple example,
> > > >
> > > > (2&*)^:(10&> @ ])^:3 ] 1
> > > >
> > > > returns 8, and
> > > >
> > > > (2&*)^:(10&> @ ])^:5 ] 1
> > > >
> > > > returns 16, as expected. Maybe there is something going on with my “v” 
> > > > in my earlier code.
> > > >
> > > > Thanks, Anton Wallgren
> > > > On 26 May 2020, 09:11 +0200, Raul Miller <[email protected]>, wrote:
> > > > > ^:_ doesn't impose the max limit on iterations, though...
> > > > >
> > > > > I think, for something that quirky, I'd just use a for loop. That
> > > > > said, f^:v^:n would work -- I'm just not sure it's optimized
> > > > > adequately.
> > > > >
> > > > > I hope this helps,
> > > > >
> > > > > --
> > > > > Raul
> > > > >
> > > > > On Tue, May 26, 2020 at 2:39 AM 'Rob Hodgkinson' via Programming
> > > > > <[email protected]> wrote:
> > > > > >
> > > > > > Hi Anton, welcome to J.
> > > > > >
> > > > > > This is a further parameter to the power operator (^:) described 
> > > > > > here:
> > > > > >
> > > > > > https://code.jsoftware.com/wiki/Vocabulary/Loopless 
> > > > > > <https://code.jsoftware.com/wiki/Vocabulary/Loopless> Section 
> > > > > > “Types of Loops” and the row in the table “Apply a verb 
> > > > > > repeatedly”, “Until a condition is met”.
> > > > > > Use Power ([x] u^:v^:_ y)
> > > > > >
> > > > > > For your example, double while a condition (eg let’s say while the 
> > > > > > sequence is < 100 and stop with the value that breaches that 
> > > > > > condition …)
> > > > > >
> > > > > > 2&* ^:(100>])^:_ (1) NB. Sequence here is 1,2,4,8,16,32,64,128
> > > > > > 128
> > > > > >
> > > > > > 2&* ^:(100>])^:_ (5) NB. Sequence is 5, 10, 20, 40, 80, 160
> > > > > > 160
> > > > > >
> > > > > > Best, Rob
> > > > > >
> > > > > > > On 26 May 2020, at 4:09 pm, Anton Wallgren <[email protected]> 
> > > > > > > wrote:
> > > > > > >
> > > > > > > Hello!
> > > > > > >
> > > > > > > Fairly recent J enthusiast here. I’m wondering about the 
> > > > > > > idiomatic way to iterate at most n times? I.e. do f^:n y, but 
> > > > > > > with the possibility of an early exit if some condition is met. 
> > > > > > > Is it (u F. ]) y, where u is f but with some Z:’s added? E.g
> > > > > > >
> > > > > > > f=: 2&*
> > > > > > > MAX=: n
> > > > > > >
> > > > > > > u=: monad define
> > > > > > > _2 Z: -.*MAX=: MAX - 1
> > > > > > > _2 Z: some other condition
> > > > > > > f y
> > > > > > > )
> > > > > > >
> > > > > > > But then you need to globally assign and reassign MAX and this 
> > > > > > > doesn’t feel very elegant. Another option of course is to use a 
> > > > > > > for-loop with break.
> > > > > > >
> > > > > > > Thanks, Anton Wallgren
> > > > > > > ----------------------------------------------------------------------
> > > > > > > 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
> > ----------------------------------------------------------------------
> > 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