Weak.S

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2009-09-10 (木) 14:25:54

Weak

module type S = sig  end

functor Weak.Make の出力 signature です。


type data

テーブルが保持する要素の型です。

type t

data 型の要素を保持するテーブルの型です。ウィークハッシュテーブルは、output_vaueやMarshal?モジュールでマーシャリングできません。

val create : int -> t

create n は空のウィークハッシュテーブルを新しく作って返します。初期状態のサイズは n です。テーブルは必要に応じて大きくなります。

val clear : t -> unit

テーブルからすべての要素を取り除きます。

val merge : t -> data -> data

merge t x は t 中で x のインスタンスを見つけて返します。見つからなかったら t に x を追加して x を返します。

val add : t -> data -> unit

add t x は t に x を追加します。t 中に x のインスタンスがすでにある場合、その後 find や merge を行って元の値が返るか今回入れた値が返るかは規定されません。

val remove : t -> data -> unit

remove t x は t から x のインスタンスを 1 つ取り除きます。t 中に x のインスタンスが 1 つもなかったら何もしません。

val find : t -> data -> data

find t x は t から x のインスタンスを見つけて返します。見つからなかったら例外 Not_found を発生します。

val find_all : t -> data -> data list

find_all t x は t から x のインスタンスをすべて見つけてリストにして返します。

val mem : t -> data -> bool

mem t x は t 中に x のインスタンスが 1 つでもあれば true を返します。でなければ false を返します。

val iter : (data -> unit) -> t -> unit

iter f t は t の要素をそれぞれ f に適用します。その順番は規定されていません。f が t 自体に変更を加えようとした場合の動作は規定されていません。

val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a

fold f t init は (f d1 (... (f dN init))) を評価します。 d1 ... dN は t のすべての要素です。その順番は規定されていません。 f が t 自体に変更を加えようとした場合の動作は規定されていません。

val count : t -> int

テーブルの要素数をカウントします。count t は fold (fun _ n -> n+1) t 0 と同じ結果を返しますが、死んだ要素を解放する遅延がありません。

val stats : t -> int * int * int * int * int * int

テーブルの状態を返します。それぞれ、テーブルの長さ、エントリーの数、バケットの長さの合計、バケットの長さのうち最小のもの、中央値、最大のものです。

新規 編集 添付