>>  <<  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