Kacper Gutowski <mwgamera@...> writes:

> Well, actually you can.  Even without using explicit →gotos.
> 
> I'm not sure if that's the most elegant solution, but the first thing
> that comes to mind is that you can use dyadic predicate for stopping
> condition as right operand rather than a number.
> 
> In this form (f⍣g)Y iterates until ((f Y) g Y) becomes true; for
> example f⍣≡ is a fixed point of f.
> 
>       {¯1↓3↓({⍵,+/ ¯2 ↑ ⍵ } ⍣ {(↑⍵)<¯1↑⍺} ) ⍵, 0 1} 1000
> 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
> 
> (I passed the requested limit as (↑⍵) because GNU APL has no lexical
> scope in dfns that would allow to name it without spilling it outside.)
> 
> -k


Thank you! After some time spent trying to understand what you did 
there I got it. Basically,
       ( f⍣{⍺=10} ) X
means that f(X) will iterate (taking in its previous output as right operand) 
until its output is equal to ten, as I understand it.

Thanks again,
Louis

Reply via email to