module type HashedType =sig
..end
Hashtbl.Make
ファンクタに対する入力のシグネチャ。type
t
val equal : t -> t -> bool
val hash : t -> int
equal
に関して等しいキーは hash
で計算されるハッシュ値が同一でなければなりません。
任意のキーの型に対して (equal
, hash
) として適切な値の組としては、例えば、オブジェクトを構造で比較する場合には ((=)
, Hashtbl.hash
) があり、 nan
を正しく扱い、オブジェクト同士を構造で比較する場合には ((fun x y -> compare x y = 0)
, Hashtbl.hash
) があり、オブジェクトをアドレスで比較する場合(循環構造のあるキーを扱いたい場合)には ((==)
, Hashtbl.hash
) 等があります。