Spec-Zone.ru › OCaml 4.14

Функтор Weak.Make

module Make: functor (H : Hashtbl.HashedType) -> S  with type data = H.t

Функтор, создающий реализацию структуры слабого хэш-множества. H.equal не может быть физическим равенством, так как ему предоставляются только неглубокие копии элементов в множестве.

Параметры:
H : Hashtbl.HashedType
type data 

Тип элементов, хранящихся в таблице.

type t 

Тип таблиц, содержащих элементы типа data. Обратите внимание, что слабые хэш-множества нельзя маршаллировать с помощью output_value или функций модуля Marshal.

val create : int -> t

create n создает новое пустое слабое хэш-множество начального размера n. Таблица будет увеличиваться по мере необходимости.

val clear : t -> unit

Удаляет все элементы из таблицы.

val merge : t -> data -> data

merge t x возвращает экземпляр x, найденный в t, если таковой имеется, в противном случае добавляет x в t и возвращает x.

val add : t -> data -> unit

add t x добавляет x в t. Если в t уже есть экземпляр x, поведение последующих вызовов find и merge не определено.

val remove : t -> data -> unit

remove t x удаляет из t один экземпляр x. Ничего не делает, если в t нет экземпляра x.

val find : t -> data -> data

find t x возвращает экземпляр x, найденный в t.

  • Возбуждает Not_found если такого элемента нет.
val find_opt : t -> data -> data option

find_opt t x возвращает экземпляр x , найденный в t, или None, если такого элемента нет.

  • С момента 4.05
val find_all : t -> data -> data list

find_all t x возвращает список всех экземпляров x , найденных в t.

val mem : t -> data -> bool

mem t x возвращает true, если в t есть хотя бы один экземпляр x, в противном случае false.

val iter : (data -> unit) -> t -> unit

iter f t вызывает f для каждого элемента t, в некотором неопределенном порядке. Не определено, что произойдёт, если f попытается изменить t само.

val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a

fold f t init вычисляет (f d1 (... (f dN init))), где d1 ... dN — элементы t в некотором неопределённом порядке. Не определено, что произойдёт, если f попытается изменить t само.

val count : t -> int

Подсчитывает количество элементов в таблице. count t даёт тот же результат, что и fold (fun _ n -> n+1) t 0, но не задерживает удаление освобождённых элементов.

val stats : t -> int * int * int * int * int * int

Возвращает статистику по таблице. Цифры в порядке: длина таблицы, количество записей, сумма длин бакетов, наименьшая длина бакета, медианная длина бакета, наибольшая длина бакета.

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Weak.Make.html

Spec-Zone.ru

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