get_or tbl k ~default
returns the value associated to k
if present,
and returns default
otherwise (if k
doesn't belong in tbl
).
add_list tbl x y
adds y
to the list x
is bound to. If x
is
not bound, it becomes bound to y
.
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)
.
by
rather than 1.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.
keys_list t
is the list of keys in t
.
If the key is in the Hashtable multiple times, all occurrences will be returned.
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.
Like add_seq_count, but allocates a new table and returns it.
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.