Module Containers.Hashtbl
- since
- 0.14
include module type of Hashtbl with type Hashtbl.statistics = Hashtbl.statistics and module Hashtbl.Make = Hashtbl.Make and type ('a, 'b) Hashtbl.t = ('a, 'b) Hashtbl.t
val create : ?random:bool -> int -> ('a, 'b) tval clear : ('a, 'b) t -> unitval reset : ('a, 'b) t -> unitval copy : ('a, 'b) t -> ('a, 'b) tval add : ('a, 'b) t -> 'a -> 'b -> unitval find : ('a, 'b) t -> 'a -> 'bval find_opt : ('a, 'b) t -> 'a -> 'b optionval find_all : ('a, 'b) t -> 'a -> 'b listval mem : ('a, 'b) t -> 'a -> boolval remove : ('a, 'b) t -> 'a -> unitval replace : ('a, 'b) t -> 'a -> 'b -> unitval iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unitval filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unitval fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'cval length : ('a, 'b) t -> intval randomize : unit -> unitval is_randomized : unit -> bool
type statistics= Hashtbl.statistics={num_bindings : int;num_buckets : int;max_bucket_length : int;bucket_histogram : int array;}
val stats : ('a, 'b) t -> statistics
module type HashedType = sig ... endmodule type S = sig ... endmodule type SeededHashedType = sig ... endmodule type SeededS = sig ... endmodule MakeSeeded : functor (H : SeededHashedType) -> sig ... endinclude CCHashtbl.Poly
val get : ('a, 'b) Hashtbl.t -> 'a -> 'b optionSafe version of
Hashtbl.find.
val get_or : ('a, 'b) Hashtbl.t -> 'a -> default:'b -> 'bget_or tbl k ~defaultreturns the value associated tokif present, and returnsdefaultotherwise (ifkdoesn't belong intbl).- since
- 0.16
val keys : ('a, 'b) Hashtbl.t -> 'a CCHashtbl.sequenceIterate on keys (similar order as
Hashtbl.iter).
val values : ('a, 'b) Hashtbl.t -> 'b CCHashtbl.sequenceIterate on values in the table.
val keys_list : ('a, 'b) Hashtbl.t -> 'a listkeys_list tis the list of keys int. If the key is in the Hashtable multiple times, all occurrences will be returned.- since
- 0.8
val map_list : ('a -> 'b -> 'c) -> ('a, 'b) Hashtbl.t -> 'c listMap on a hashtable's items, collect into a list.
val incr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unitincr ?by tbl xincrements or initializes the counter associated withx. Ifget tbl x = None, then after update,get tbl x = Some 1; otherwise, ifget tbl x = Some n, nowget tbl x = Some (n+1).- parameter by
if specified, the int value is incremented by
byrather than 1.
- since
- 0.16
val decr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unitLike
incrbut subtract 1 (or the value ofby). 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 to_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) CCHashtbl.sequenceIterate on bindings in the table.
val add_list : ('a, 'b list) Hashtbl.t -> 'a -> 'b -> unitadd_list tbl x yaddsyto the listxis bound to. Ifxis not bound, it becomes bound toy.- since
- 0.16
val add_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) CCHashtbl.sequence -> unitAdd the corresponding pairs to the table, using
Hashtbl.add.- since
- 0.16
val of_seq : ('a * 'b) CCHashtbl.sequence -> ('a, 'b) Hashtbl.tFrom the given bindings, added in order.
val add_seq_count : ('a, int) Hashtbl.t -> 'a CCHashtbl.sequence -> unitadd_seq_count tbl seqincrements the count of each element ofseqby callingincr. This is useful for counting how many times each element ofseqoccurs.- since
- 0.16
val of_seq_count : 'a CCHashtbl.sequence -> ('a, int) Hashtbl.tLike
add_seq_count, but allocates a new table and returns it.- since
- 0.16
val of_list : ('a * 'b) list -> ('a, 'b) Hashtbl.tBuild a table from the given list of bindings
k_i -> v_i, added in order usingadd. 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 -> unitupdate tbl ~f ~kupdates keykby callingf k (Some v)ifkwas mapped tov, orf k Noneotherwise; if the call returnsNonethenkis removed/stays removed, if the call returnsSome v'then the bindingk -> v'is inserted usingHashtbl.replace.- since
- 0.14
val get_or_add : ('a, 'b) Hashtbl.t -> f:('a -> 'b) -> k:'a -> 'bget_or_add tbl ~k ~ffinds and returns the binding ofkintbl, if it exists. If it does not exist, thenf kis called to obtain a new bindingv;k -> vis added totblandvis returned.- since
- 1.0
val pp : 'a CCHashtbl.printer -> 'b CCHashtbl.printer -> ('a, 'b) Hashtbl.t CCHashtbl.printerPrinter for table. Renamed from
printsince 2.0.- since
- 0.13
module type S' = CCHashtbl.Smodule Make' = CCHashtbl.Make