diff options
| author | filliatr | 1999-11-26 09:28:05 +0000 |
|---|---|---|
| committer | filliatr | 1999-11-26 09:28:05 +0000 |
| commit | e52bfd221b6a28fd74a70daa92ff71c74c55ec22 (patch) | |
| tree | 9144d67f50bed6df851a040a974d5a5f294c88d7 /lib | |
| parent | 93535ddcdbf379d7d8fe062acdb9428d1b83ec4f (diff) | |
module Termast
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@149 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/util.ml | 7 | ||||
| -rw-r--r-- | lib/util.mli | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/util.ml b/lib/util.ml index ed56f06d76..77d26ecf4d 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -62,6 +62,13 @@ let stringmap_dom m = Stringmap.fold (fun s _ l -> s::l) m [] let list_intersect l1 l2 = List.filter (fun x -> List.mem x l2) l1 +let list_union l1 l2 = + let rec urec = function + | [] -> l2 + | a::l -> if List.mem a l2 then urec l else a::urec l + in + urec l1 + let list_unionq l1 l2 = let rec urec = function | [] -> l2 diff --git a/lib/util.mli b/lib/util.mli index e0462b36c9..30d7bdee79 100644 --- a/lib/util.mli +++ b/lib/util.mli @@ -36,6 +36,7 @@ val stringmap_dom : 'a Stringmap.t -> string list (*s Lists. *) val list_intersect : 'a list -> 'a list -> 'a list +val list_union : 'a list -> 'a list -> 'a list val list_unionq : 'a list -> 'a list -> 'a list val list_subtract : 'a list -> 'a list -> 'a list val list_subtractq : 'a list -> 'a list -> 'a list @@ -49,7 +50,6 @@ val list_fold_left_i : (int -> 'a -> 'b -> 'a) -> int -> 'a -> 'b list -> 'a val list_for_all_i : (int -> 'a -> bool) -> int -> 'a list -> bool val list_except : 'a -> 'a list -> 'a list val list_for_all2eq : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool -val list_map_i : (int -> 'a -> 'b) -> int -> 'a list -> 'b list val list_sep_last : 'a list -> 'a * 'a list val list_try_find_i : (int -> 'a -> 'b) -> int -> 'a list -> 'b val list_uniquize : 'a list -> 'a list |
