repeat : ('a -> 'a) -> 'a -> 'a
STRUCTURE
SYNOPSIS
Iteratively apply a function until it fails.
DESCRIPTION
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
HOL  Kananaskis-14