aboutsummaryrefslogtreecommitdiff
path: root/lib/util.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/util.ml')
-rw-r--r--lib/util.ml8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index 9aee36e206..29273b1690 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -129,6 +129,14 @@ let list_map2_i f i l1 l2 =
in
map_i i (l1,l2)
+let list_map3 f l1 l2 l3 =
+ let rec map = function
+ | ([], [], []) -> []
+ | ((h1::t1), (h2::t2), (h3::t3)) -> (f h1 h2 h3) :: (map (t1,t2,t3))
+ | (_, _, _) -> invalid_arg "map3"
+ in
+ map (l1,l2,l3)
+
let list_index x =
let rec index_x n = function
| y::l -> if x = y then n else index_x (succ n) l