Module type Set.S


module type S = sig  end
functor Set.Make の出力 signature です。


type elt
集合の要素の型です。


type t
集合の型です。

val empty : t
空の集合です。
val is_empty : t -> bool
集合が空かどうか検査します。
val mem : elt -> t -> bool
mem x s は集合 s 中に x があるかどうか検査します。
val add : elt -> t -> t
add x s は集合 s の要素すべてに x を追加した集合を返します。s 中にすでに x が存在した場合は、s を変更せずに返します。
val singleton : elt -> t
singleton xx を 1 つだけ持つ集合を返します。
val remove : elt -> t -> t
remove x s は集合 s の要素から x を取り除いて返します。s 中に x が存在しない場合は、s を変更せずに返します。
val union : t -> t -> t
和集合。
val inter : t -> t -> t
積集合。
val diff : t -> t -> t
差集合。
val compare : t -> t -> int
集合同士の完全な順序付け関数です。集合の集合を作るときの順序付け関数として使えます。
val equal : t -> t -> bool
equal s1 s2 は集合 s1s2 が等しいかどうか、つまり持つ要素がすべて同じかどうか検査します。
val subset : t -> t -> bool
subset s1 s2 は集合 s1 が集合 s2 の部分集合になっているかどうか検査します。
val iter : (elt -> unit) -> t -> unit
iter f ss の要素すべてを順に f に適用していきます。どの要素からどういう順に f を適用されるかは規定されていません。
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
fold f s a(f xN ... (f x2 (f x1 a))...) を評価します。 x1 ... xNs 中のすべての要素です。 s のどの要素からどういう順に f を適用されるかは規定されていません。
val for_all : (elt -> bool) -> t -> bool
for_all p s は集合の要素すべてが、述語 p を満たすかどうかチェックします。
val exists : (elt -> bool) -> t -> bool
for_all p s は集合の要素で、述語 p を満たすものが少なくとも 1 つはあるかどうかチェックします。
val filter : (elt -> bool) -> t -> t
filter p ss の要素で、述語 p を満たすものすべてを含む集合を返します。
val partition : (elt -> bool) -> t -> t * t
partition p s は集合のペア (s1, s2) を返します。s1s の要素で述語 p を満たすものの集合、s2 は満たさないものの集合です。
val cardinal : t -> int
集合の数を返します。
val elements : t -> elt list
与えられた集合の要素すべてをリストにして返します。返されるリストは Ord.compare に関して昇順にソートされています (OrdSet.Make に与えられる引数です) 。
val min_elt : t -> elt
集合の要素で (Ord.compare に関して) 最も小さい要素を返します。集合が空だった場合は例外 Not_found を発生します。
val max_elt : t -> elt
Set.S.min_elt と同じように、最も大きい要素を返します。
val choose : t -> elt
集合から要素を 1 つ選んで返します。集合が空だった場合は例外 Not_found を発生します。どの要素が選ばれるかは規定されていませんが、同じ集合が与えられたときは必ず同じ要素を返します。