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.