diff options
| author | filliatr | 2001-04-05 06:42:02 +0000 |
|---|---|---|
| committer | filliatr | 2001-04-05 06:42:02 +0000 |
| commit | def9cd8e725af360c5e528450ecd7660dcef7620 (patch) | |
| tree | c9e316c670b840ab1aa7510741172f55324910e0 /lib | |
| parent | 67dbb420da5b29c48a9271917909c9a27a8a4e43 (diff) | |
array_fold_left_i
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1550 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/util.ml | 5 | ||||
| -rw-r--r-- | lib/util.mli | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml index 5e10091e3f..44b5ef08fa 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -322,6 +322,11 @@ let array_last v = let array_cons e v = Array.append [|e|] v +let array_fold_left_i f v a = + let n = Array.length a in + let rec fold i v = if i = n then v else fold (succ i) (f i v a.(i)) in + fold 0 v + let array_fold_left2 f a v1 v2 = let lv1 = Array.length v1 in let rec fold a n = diff --git a/lib/util.mli b/lib/util.mli index d46672a603..8938257898 100644 --- a/lib/util.mli +++ b/lib/util.mli @@ -103,6 +103,7 @@ val array_hd : 'a array -> 'a val array_tl : 'a array -> 'a array val array_last : 'a array -> 'a val array_cons : 'a -> 'a array -> 'a array +val array_fold_left_i : (int -> 'a -> 'b -> 'a) -> 'a -> 'b array -> 'a val array_fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b array -> 'c array -> 'a val array_fold_left2_i : |
