Module CCHashtbl
Extension to the standard Hashtbl
- since
- 0.4
type 'a sequence= ('a -> unit) -> unittype 'a eq= 'a -> 'a -> booltype 'a hash= 'a -> inttype 'a printer= Format.formatter -> 'a -> unit
Polymorphic tables
module Poly : sig ... endinclude module type of Poly
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 sequenceIterate on keys (similar order as
Hashtbl.iter).
val values : ('a, 'b) Hashtbl.t -> 'b 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) 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) sequence -> unitAdd the corresponding pairs to the table, using
Hashtbl.add.- since
- 0.16
val of_seq : ('a * 'b) sequence -> ('a, 'b) Hashtbl.tFrom the given bindings, added in order.
val add_seq_count : ('a, int) Hashtbl.t -> 'a 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 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
Functor
module type S = sig ... end