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