Spec-Zone.ru › OCaml

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

Spec-Zone.ru

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