---------------------------------------------------------------------- repeat (Lib) ---------------------------------------------------------------------- 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. ----------------------------------------------------------------------