Module type Set.S
module type S = sig .. end
Set.Make ファンクタの出力のシグネチャ。
type elt
集合の要素の型。
type t
集合の型。
val empty : t
空集合。
val is_empty : t -> bool
集合が空であるかどうか検査します。
val mem : elt -> t -> bool
mem x s は x が集合 s に属するかどうか検査します。
val add : elt -> t -> t
add x s は s の要素すべてに加えて x を要素とする集合を返します。
x が既に s に含まれていた場合には s がそのまま返ります。
val singleton : elt -> t
singleton x は x のみを要素とする集合を返します。
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 は s の要素に対して、要素の型上の順序において昇順に適用されます。
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
fold f s a は (f xN ... (f x2 (f x1 a))...) を計算します。
ここで、 x1 ... xN は s の要素を昇順に並べたものです。
val for_all : (elt -> bool) -> t -> bool
for_all p s は集合の要素がすべて述語 p を満たすか検査します。
val exists : (elt -> bool) -> t -> bool
exists p s は集合の要素が少なくともひとつは述語 p を満たすか検査します。
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 は p を満たさないものの集合です。
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
与えられた集合の要素をひとつ返します。
集合が空の場合には Not_found 例外が発生します。
どの要素が選択されるかは規定されていませんが、等しい集合に対しては等しい要素が選択されます。
val split : elt -> t -> t * bool * t
split x s は三つ組 (l, present, r) を返します。
l は s の要素で x よりも厳密に小さい要素から成る集合で、
r は s の要素で x よりも厳密に大きい要素から成る集合です。
present は s に x と等しい要素が含まれない場合には false、
含まれる場合には true になります。