-
containers
-
containers.data
-
containers.monomorphic
-
containers.sexp
-
containers.top
Library
Module
Module type
Parameter
Class
Class type
val get : ('a, 'b) Hashtbl.t -> 'a -> 'b option
Safe version of Hashtbl.find
.
val get_or : ('a, 'b) Hashtbl.t -> 'a -> default:'b -> 'b
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
Iterate on keys (similar order as Hashtbl.iter
).
val keys_list : ('a, 'b) Hashtbl.t -> 'a list
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, 'b) Hashtbl.t -> 'b list
values_list t
is the list of values in t
.
- since 0.8
val map_list : ('a -> 'b -> 'c) -> ('a, 'b) Hashtbl.t -> 'c list
Map on a hashtable's items, collect into a list.
val incr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unit
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
val decr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unit
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
val add_list : ('a, 'b list) Hashtbl.t -> 'a -> 'b -> unit
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
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
val to_list : ('a, 'b) Hashtbl.t -> ('a * 'b) list
List of bindings (order unspecified).
val of_list : ('a * 'b) list -> ('a, 'b) Hashtbl.t
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.
val update :
('a, 'b) Hashtbl.t ->
f:('a -> 'b option -> 'b option) ->
k:'a ->
unit
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
val get_or_add : ('a, 'b) Hashtbl.t -> f:('a -> 'b) -> k:'a -> 'b
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