From 97caff7ec16a02d949ca1c5facd9cd421cc5c819 Mon Sep 17 00:00:00 2001 From: Nicolas Braud-Santoni Date: Sun, 7 Jul 2013 00:14:22 +0200 Subject: [PATCH] multiSet: Add contains function --- multiSet.ml | 7 +++++++ multiSet.mli | 2 ++ 2 files changed, 9 insertions(+) diff --git a/multiSet.ml b/multiSet.ml index 8def42e1..a896544f 100644 --- a/multiSet.ml +++ b/multiSet.ml @@ -51,6 +51,8 @@ module type S = sig val diff : t -> t -> t + val contains : t -> t -> bool + val compare : t -> t -> int val equal : t -> t -> bool @@ -131,6 +133,11 @@ module Make(O : Set.OrderedType) = struct else None) m1 m2 + let contains m1 m2 = + try + M.for_all (fun x c -> M.find x m1 >= c) m2 + with Not_found -> false + let compare m1 m2 = M.compare (fun x y -> x - y) m1 m2 diff --git a/multiSet.mli b/multiSet.mli index 9a64f817..e7979dfa 100644 --- a/multiSet.mli +++ b/multiSet.mli @@ -51,6 +51,8 @@ module type S = sig val diff : t -> t -> t + val contains : t -> t -> bool + val compare : t -> t -> int val equal : t -> t -> bool