Функтор Weak.Make
module Make: functor (H : Hashtbl.HashedType) -> S with type data = H.t
Функтор, создающий реализацию структуры слабого хэш-множества. H.equal не может быть физическим равенством, так как ему предоставляются только поверхностные копии элементов в множестве.
| Параметры: |
|
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 -> 'acc -> 'acc) -> t -> 'acc -> 'acc
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-2024 INRIA.
https://ocaml.org/manual/5.2/api/Weak.Make.html