OCaml library : Hashtbl.Make (original) (raw)

Functor Hashtbl.Make

module Make:

functor ( H  :  [HashedType](Hashtbl.HashedType.html) ) ->  [S](Hashtbl.S.html) with type key = H.t

Functor building an implementation of the hashtable structure. The functor Hashtbl.Make returns a structure containing a type key of keys and a type 'a t of hash tables associating data of type 'a to keys of type key. The operations perform similarly to those of the generic interface, but use the hashing and equality functions specified in the functor argument H instead of generic equality and hashing. Since the hash function is not seeded, the create operation of the result structure always returns non-randomized hash tables.


type ``key

type !'a t

val create : int -> 'a [t](Hashtbl.S.html#TYPEt)

val clear : 'a [t](Hashtbl.S.html#TYPEt) -> unit

val reset : 'a [t](Hashtbl.S.html#TYPEt) -> unit

val copy : 'a [t](Hashtbl.S.html#TYPEt) -> 'a [t](Hashtbl.S.html#TYPEt)

val add : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) -> 'a -> unit

val remove : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) -> unit

val find : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) -> 'a

val find_opt : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) -> 'a option

val find_all : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) -> 'a list

val replace : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) -> 'a -> unit

val mem : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) -> bool

val iter : ([key](Hashtbl.S.html#TYPEkey) -> 'a -> unit) -> 'a [t](Hashtbl.S.html#TYPEt) -> unit

val filter_map_inplace : ([key](Hashtbl.S.html#TYPEkey) -> 'a -> 'a option) -> 'a [t](Hashtbl.S.html#TYPEt) -> unit

val fold : ([key](Hashtbl.S.html#TYPEkey) -> 'a -> 'acc -> 'acc) -> 'a [t](Hashtbl.S.html#TYPEt) -> 'acc -> 'acc

val length : 'a [t](Hashtbl.S.html#TYPEt) -> int

val stats : 'a [t](Hashtbl.S.html#TYPEt) -> [Hashtbl.statistics](Hashtbl.html#TYPEstatistics)

val to_seq : 'a [t](Hashtbl.S.html#TYPEt) -> ([key](Hashtbl.S.html#TYPEkey) * 'a) [Seq.t](Seq.html#TYPEt)

val to_seq_keys : 'a [t](Hashtbl.S.html#TYPEt) -> [key](Hashtbl.S.html#TYPEkey) [Seq.t](Seq.html#TYPEt)

val to_seq_values : 'a [t](Hashtbl.S.html#TYPEt) -> 'a [Seq.t](Seq.html#TYPEt)

val add_seq : 'a [t](Hashtbl.S.html#TYPEt) -> ([key](Hashtbl.S.html#TYPEkey) * 'a) [Seq.t](Seq.html#TYPEt) -> unit

val replace_seq : 'a [t](Hashtbl.S.html#TYPEt) -> ([key](Hashtbl.S.html#TYPEkey) * 'a) [Seq.t](Seq.html#TYPEt) -> unit

val of_seq : ([key](Hashtbl.S.html#TYPEkey) * 'a) [Seq.t](Seq.html#TYPEt) -> 'a [t](Hashtbl.S.html#TYPEt)