Тип модуля Hashtbl.HashedType
module type HashedType = sig .. end
Входная сигнатура функтора Hashtbl.Make.
type t
Тип ключей хеш-таблицы.
val equal : t -> t -> bool
Предикат равенства, используемый для сравнения ключей.
val hash : t -> int
Хеш-функция для ключей. Она должна быть устроена так, чтобы два ключа, равные согласно equal, имели одинаковые хеш-значения, вычисленные с помощью hash.
Хеш-значение ключа должно оставаться неизменным, пока ключ находится в таблице. В частности, если хеш-функция зависит от изменяемых данных ключа, эти данные нельзя изменять, пока ключ находится в таблице. Аналогично, поскольку хеш-функция может вызываться во время изменения самой таблицы, при вычислении ей следует избегать обращения к таблице.
Примеры подходящих пар (equal, hash) для произвольных типов ключей:
- (
(=),Hashtbl.HashedType.hash) для сравнения объектов по структуре (если объекты не содержат чисел с плавающей точкой) - (
(fun x y -> compare x y = 0),Hashtbl.HashedType.hash) для сравнения объектов по структуре с корректной обработкойnan - (
(==),Hashtbl.HashedType.hash) для сравнения объектов по физическому равенству (например, изменяемых или циклических объектов).
© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/Hashtbl.HashedType.html