>> 
<< 
Usr 
Pri 
JfC 
LJ 
Phr 
Dic 
Rel 
Voc 
!: 
Help 
Dictionary
23. Iteration
The repetition of a process, or of a sequence of similar processes, 
is called iteration. Much iteration is implicit, 
as in */b and a*/b, 
and a*b ; explicit iteration is provided 
by the power conjunction (^:), 
by agenda (@.) with self-reference, 
and by control structures:
   (cos=: 2&o.) ^: (i.6) b=: 1
1 0.540302 0.857553 0.65429 0.79348 0.701369
   ]y=: cos^:_ b
0.739085
   y=cos y
1
The example cos^:_ illustrates the fact that 
infinite iteration is meaningful (that is, terminates) 
if the process being applied converges.
Controlled iteration of a process p 
is provided by p^:q , where the result 
of q determines the number of applications 
of p performed.  The forms $:@p^:q 
and p^:q^:_ are commonly useful.
If f is a continuous function, and if f i 
and f j differ in sign, then there must be a 
root r between i and j 
such that f r is zero; 
the list b=:i,j is said to bracket a root.  
A narrower bracket is provided by the mean of b together 
with that element of b whose result on applying f 
differs in sign from its result.  Thus:
   f=: %: - 4:                 NB. A sample function
   root=: 3 : 0
m=. +/ % #
while. ~:/y
do.
if. ~:/ * f ({.,m) y
   do. y=. ({.,m) y
 else. y=. ({:,m) y
end.
end. m y
)
   b=: 1 32
   root b
16
   f b,root b
_3 1.65685 1.77636e_15
Exercises
| 23.1 | Use the function root to find the roots of 
various functions, such as f=: 6&-@! 
 
 | 
| 23.2 | Experiment with the function fn=: +/\ 
(which produces the figurate numbers when applied repeatedly 
to i.n), and explain the behaviour of the 
function fn^:(?@3:) | 
>> 
<< 
Usr 
Pri 
JfC 
LJ 
Phr 
Dic 
Rel 
Voc 
!: 
Help 
Dictionary