\DOC repeat \SYNOPSIS

advertisement
\DOC repeat
\TYPE {repeat : ('a -> 'a) -> 'a -> 'a}
\SYNOPSIS
Iteratively apply a function until it fails.
\KEYWORDS
Iteration, application.
\DESCRIBE
An invocation {repeat f x} expands to {repeat f (f x)}. Thus it unrolls
to
{f(...(f x)...)}, returning the most recent argument to {f} before
application fails.
\FAILURE
The evaluation of {repeat f x} fails only if interrupted, or machine
resources are exhausted.
\EXAMPLE
The following gives a simple-minded way of calculating the largest
integer
on the machine.
{
- fun incr x = x+1;
> val incr = fn : int -> int
val maxint = repeat incr 0;
(* takes some time *)
> val maxint = 1073741823 : int
}
(Caution: in some ML implementations, the type {int} is
not implemented by machine words, but by `bignum' techniques that
allow numbers of arbitrary size, in which case the example above
will not return for a very long time.)
\SEEALSO
Lib.funpow.
\ENDDOC
Download