-
containers
-
containers.data
-
containers.monomorphic
-
containers.sexp
-
containers.top
Library
Module
Module type
Parameter
Class
Class type
Parameters
module X : Hashtbl.HashedType
Signature
include Hashtbl.S with type key = X.t with type 'a t = 'a Hashtbl.Make(X).t
type key = X.t
type 'a t = 'a Hashtbl.Make(X).t
val create : int -> 'a t
val clear : 'a t -> unit
val reset : 'a t -> unit
- since 4.00.0
val length : 'a t -> int
val stats : 'a t -> Hashtbl.statistics
- since 4.00.0
Safe version of Hashtbl.find
.
get_or tbl k ~default
returns the value associated to k
if present, and returns default
otherwise (if k
doesn't belong in tbl
).
- since 0.16
add_list tbl x y
adds y
to the list x
is bound to. If x
is not bound, it becomes bound to y
.
- since 0.16
incr ?by tbl x
increments or initializes the counter associated with x
. If get tbl x = None
, then after update, get tbl x = Some 1
; otherwise, if get tbl x = Some n
, now get tbl x = Some (n+1)
.
- parameter by
if specified, the int value is incremented by
by
rather than 1.
- since 0.16
Like incr
but subtract 1 (or the value of by
). If the value reaches 0, the key is removed from the table. This does nothing if the key is not already present in the table.
- since 0.16
Iterate on keys (similar order as Hashtbl.iter
).
keys_list t
is the list of keys in t
. If the key is in the Hashtable multiple times, all occurrences will be returned.
- since 0.8
val values_list : 'a t -> 'a list
values_list t
is the list of values in t
.
- since 0.8
Add the corresponding pairs to the table, using Hashtbl.add
.
- since 0.16
add_seq_count tbl seq
increments the count of each element of seq
by calling incr
. This is useful for counting how many times each element of seq
occurs.
- since 0.16
Like add_seq_count
, but allocates a new table and returns it.
- since 0.16
Build a table from the given list of bindings k_i -> v_i
, added in order using add
. If a key occurs several times, it will be added several times, and the visible binding will be the last one.
update tbl ~f ~k
updates key k
by calling f k (Some v)
if k
was mapped to v
, or f k None
otherwise; if the call returns None
then k
is removed/stays removed, if the call returns Some v'
then the binding k -> v'
is inserted using Hashtbl.replace
.
- since 0.14
get_or_add tbl ~k ~f
finds and returns the binding of k
in tbl
, if it exists. If it does not exist, then f k
is called to obtain a new binding v
; k -> v
is added to tbl
and v
is returned.
- since 1.0