Attention une mise à jour du service Gitlab va être effectuée le mardi 30 novembre entre 17h30 et 18h00. Cette mise à jour va générer une interruption du service dont nous ne maîtrisons pas complètement la durée mais qui ne devrait pas excéder quelques minutes. Cette mise à jour intermédiaire en version 14.0.12 nous permettra de rapidement pouvoir mettre à votre disposition une version plus récente.

Commit d62ede5a authored by François Bobot's avatar François Bobot
Browse files

Util : option_map2

parent 2b9133aa
......@@ -47,6 +47,12 @@ let option_fold f d = function None -> d | Some x -> f d x
let option_iter f = function None -> () | Some x -> f x
let option_map2 f x y =
match x,y with
| None, None -> None
| Some x, Some y -> Some (f x y)
| _ -> failwith "option_map2 : None and Some at the same time"
let option_eq eq a b = match a,b with
| None, None -> true
| None, _ | _, None -> false
......
......@@ -49,6 +49,8 @@ val option_fold : ('b -> 'a -> 'b) -> 'b -> 'a option -> 'b
(** [option_fold f d o] returns [d] if [o] is [None], and
[f d x] if [o] is [Some x] *)
val option_map2 : ('a -> 'b -> 'c) -> 'a option -> 'b option -> 'c option
val option_eq : ('a -> 'b -> bool) -> 'a option -> 'b option -> bool
val option_map_fold :
......@@ -91,7 +93,10 @@ val list_compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int
exception FoldSkip
val all_fn : ('a -> bool) -> 'b -> 'a -> bool
(* [all_fn pr b a] return true if pr is true on a, otherwise raise FoldSkip *)
val any_fn : ('a -> bool) -> 'b -> 'a -> bool
(* [all_fn pr b a] return false if pr is false on a,
otherwise raise FoldSkip *)
val ffalse : 'a -> bool
(** [ffalse] constant function [false] *)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment