Module type Set.S
module type S = sig end
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 x
は x
を 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
は集合 s1
と s2
が等しいかどうか、つまり持つ要素がすべて同じかどうか検査します。
val subset : t -> t -> bool
subset s1 s2
は集合 s1
が集合 s2
の部分集合になっているかどうか検査します。
val iter : (elt -> unit) -> t -> unit
iter f s
は s
の要素すべてを順に f
に適用していきます。どの要素からどういう順に f
を適用されるかは規定されていません。
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
fold f s a
は (f xN ... (f x2 (f x1 a))...)
を評価します。
x1 ... xN
は s
中のすべての要素です。
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 s
は s
の要素で、述語 p
を満たすものすべてを含む集合を返します。
val partition : (elt -> bool) -> t -> t * t
partition p s
は集合のペア (s1, s2)
を返します。s1
は s
の要素で述語 p
を満たすものの集合、s2
は満たさないものの集合です。
val cardinal : t -> int
集合の数を返します。
val elements : t -> elt list
与えられた集合の要素すべてをリストにして返します。返されるリストは
Ord.compare
に関して昇順にソートされています (
Ord
は
Set.Make
に与えられる引数です) 。
val min_elt : t -> elt
集合の要素で (Ord.compare
に関して) 最も小さい要素を返します。集合が空だった場合は例外 Not_found
を発生します。
val max_elt : t -> elt
val choose : t -> elt
集合から要素を 1 つ選んで返します。集合が空だった場合は例外 Not_found
を発生します。どの要素が選ばれるかは規定されていませんが、同じ集合が与えられたときは必ず同じ要素を返します。