mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
add CCSet.add_{list,seq}
This commit is contained in:
parent
59835f8ef2
commit
431c3a1e53
2 changed files with 20 additions and 4 deletions
|
|
@ -35,10 +35,16 @@ module type S = sig
|
|||
|
||||
val of_seq : elt sequence -> t
|
||||
|
||||
val add_seq : t -> elt sequence -> t
|
||||
(** @since NEXT_RELEASE *)
|
||||
|
||||
val to_seq : t -> elt sequence
|
||||
|
||||
val of_list : elt list -> t
|
||||
|
||||
val add_list : t -> elt list -> t
|
||||
(** @since NEXT_RELEASE *)
|
||||
|
||||
val to_list : t -> elt list
|
||||
|
||||
val pp : ?start:string -> ?stop:string -> ?sep:string ->
|
||||
|
|
@ -51,14 +57,18 @@ end
|
|||
module Make(O : Map.OrderedType) = struct
|
||||
include Set.Make(O)
|
||||
|
||||
let of_seq s =
|
||||
let set = ref empty in
|
||||
s (fun x -> set := add x !set);
|
||||
let add_seq set seq =
|
||||
let set = ref set in
|
||||
seq (fun x -> set := add x !set);
|
||||
!set
|
||||
|
||||
let of_seq s = add_seq empty s
|
||||
|
||||
let to_seq s yield = iter yield s
|
||||
|
||||
let of_list l = List.fold_left (fun set x -> add x set) empty l
|
||||
let add_list = List.fold_left (fun set x -> add x set)
|
||||
|
||||
let of_list l = add_list empty l
|
||||
|
||||
let to_list = elements
|
||||
|
||||
|
|
|
|||
|
|
@ -37,10 +37,16 @@ module type S = sig
|
|||
|
||||
val of_seq : elt sequence -> t
|
||||
|
||||
val add_seq : t -> elt sequence -> t
|
||||
(** @since NEXT_RELEASE *)
|
||||
|
||||
val to_seq : t -> elt sequence
|
||||
|
||||
val of_list : elt list -> t
|
||||
|
||||
val add_list : t -> elt list -> t
|
||||
(** @since NEXT_RELEASE *)
|
||||
|
||||
val to_list : t -> elt list
|
||||
|
||||
val pp : ?start:string -> ?stop:string -> ?sep:string ->
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue