aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2002-02-28 18:58:10 +0000
committerherbelin2002-02-28 18:58:10 +0000
commit38723886e9bf0a179069010ba128960aa2e61e1f (patch)
tree34a14d705b36fd824d0b4af9c9eccfdf12a70ba9
parenta5e7a9a99aaa371104ee53f55cc54f19aef21609 (diff)
ajout option_compare
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2499 85f007b7-540e-0410-9357-904b9bb8a0f7
-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 1bb69bf323..6632beaf29 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -501,6 +501,11 @@ let option_app f = function
| None -> None
| Some x -> Some (f x)
+let option_compare f a b = match (a,b) with
+ | None, None -> true
+ | Some a', Some b' -> f a' b'
+ | _ -> failwith "option_compare"
+
let map_succeed f =
let rec map_f = function
| [] -> []
diff --git a/lib/util.mli b/lib/util.mli
index 6bdc54b4ba..aa7042903d 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -156,6 +156,7 @@ val interval : int -> int -> int list
val in_some : 'a -> 'a option
val out_some : 'a option -> 'a
val option_app : ('a -> 'b) -> 'a option -> 'b option
+val option_compare : ('a -> 'b -> bool) -> 'a option -> 'b option -> bool
(* In [map_succeed f l] an element [a] is removed if [f a] raises *)
(* [Failure _] otherwise behaves as [List.map f l] *)