aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorfilliatr2001-04-05 06:42:02 +0000
committerfilliatr2001-04-05 06:42:02 +0000
commitdef9cd8e725af360c5e528450ecd7660dcef7620 (patch)
treec9e316c670b840ab1aa7510741172f55324910e0 /lib
parent67dbb420da5b29c48a9271917909c9a27a8a4e43 (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.ml5
-rw-r--r--lib/util.mli1
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 :