aboutsummaryrefslogtreecommitdiff
path: root/lib/util.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/util.ml')
-rw-r--r--lib/util.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index 59f119a50c..0cab4540e2 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -207,6 +207,12 @@ let list_map_append f l = List.flatten (List.map f l)
let list_map_append2 f l1 l2 = List.flatten (List.map2 f l1 l2)
+let list_share_tails l1 l2 =
+ let rec shr_rev acc = function
+ | ((x1::l1), (x2::l2)) when x1 == x2 -> shr_rev (x1::acc) (l1,l2)
+ | (l1,l2) -> (List.rev l1, List.rev l2, acc)
+ in
+ shr_rev [] (List.rev l1, List.rev l2)
(* Arrays *)