diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/util.ml | 4 | ||||
| -rw-r--r-- | lib/util.mli | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml index cd32737d2e..0c3c038dd2 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -434,6 +434,10 @@ let iterate f = let repeat n f x = for i = 1 to n do f x done + +let iterate_for a b f x = + let rec iterate i v = if i > b then v else iterate (succ i) (f i v) in + iterate a x (* Misc *) diff --git a/lib/util.mli b/lib/util.mli index 5122df3e89..d5976baf1d 100644 --- a/lib/util.mli +++ b/lib/util.mli @@ -130,6 +130,7 @@ val matrix_transpose : 'a list list -> 'a list list val compose : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b val iterate : ('a -> 'a) -> int -> 'a -> 'a val repeat : int -> ('a -> unit) -> 'a -> unit +val iterate_for : int -> int -> (int -> 'a -> 'a) -> 'a -> 'a (*s Misc. *) |
