aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2002-11-24 22:22:08 +0000
committerherbelin2002-11-24 22:22:08 +0000
commit38c3baf926ce1248be7aca5288810e8c000bb55c (patch)
treeaf42e63667f44fae65d48d568233cb4357be4653
parentfad76e59fbaa7371252753a9bc55650aacf6c43c (diff)
Ajout option_cons
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3265 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--lib/util.ml4
-rw-r--r--lib/util.mli5
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/util.ml b/lib/util.ml
index 885278da7a..441cf3744a 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -559,6 +559,10 @@ let option_app f = function
| None -> None
| Some x -> Some (f x)
+let option_cons a l = match a with
+ | Some x -> x::l
+ | None -> l
+
let option_fold_left2 f e a b = match (a,b) with
| Some x, Some y -> f e x y
| _ -> e
diff --git a/lib/util.mli b/lib/util.mli
index 85ae3f2eb0..ad00151cb1 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -174,8 +174,9 @@ 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_fold_left2 :
- ('a -> 'b -> 'c -> 'a) -> 'a -> 'b option -> 'c option -> 'a
+val option_cons : 'a option -> 'a list -> 'a list
+val option_fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b option ->
+ 'c option -> 'a
val option_iter : ('a -> unit) -> 'a option -> unit
val option_compare : ('a -> 'b -> bool) -> 'a option -> 'b option -> bool
val option_smartmap : ('a -> 'a) -> 'a option -> 'a option