Module `Hashtbl`

: hash tables and hash functions

Hash tables are hashed association tables, with in-place modification.

type 'b t

The type of hash tables from type `Xtypes.window`

to type `'b`

.

val create : int -> 'b t

`Hashtbl.create n`

creates a new, empty hash table, with
initial size `n`

. The table grows as needed, so `n`

is
just an initial guess. Better results are said to be
achieved when `n`

is a prime number.
Raise `Invalid_argument`

if `n`

is less than 1.

val clear : 'b t -> unit

val add : 'b t -> Xtypes.window -> 'b -> unit

`Hashtbl.add tbl x y`

adds a binding of `x`

to `y`

in table `tbl`

.
Previous bindings for `x`

are not removed, but simply
hidden. That is, after performing `Hashtbl.remove tbl x`

,
the previous binding for `x`

, if any, is restored.
(Same behavior as with association lists.)

val find : 'b t -> Xtypes.window -> 'b

`Hashtbl.find tbl x`

returns the current binding of `x`

in `tbl`

,
or raises `Not_found`

if no such binding exists.

val find_all : 'b t -> Xtypes.window -> 'b list

`Hashtbl.find_all tbl x`

returns the list of all data
associated with `x`

in `tbl`

.
The current binding is returned first, then the previous
bindings, in reverse order of introduction in the table.

val mem : 'b t -> Xtypes.window -> bool

`Hashtbl.mem tbl x`

checks if `x`

is bound in `tbl`

.

val remove : 'b t -> Xtypes.window -> unit

`Hashtbl.remove tbl x`

removes the current binding of `x`

in `tbl`

,
restoring the previous binding if it exists.
It does nothing if `x`

is not bound in `tbl`

.

val iter : (Xtypes.window -> 'b -> unit) -> 'b t -> unit

`Hashtbl.iter f tbl`

applies `f`

to all bindings in table `tbl`

.
`f`

receives the key as first argument, and the associated value
as second argument. The order in which the bindings are passed to
`f`

is unspecified. Each binding is presented exactly once
to `f`

.

Go to the first, previous, next, last section, table of contents.