Spec-Zone.ru › OCaml

Тип модуля 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API