ocaml-containers/2.7/containers/Containers/Hashtbl/index.html
2019-11-11 22:39:35 -06:00

2 lines
No EOL
26 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Hashtbl (containers.Containers.Hashtbl)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">containers</a> &#x00BB; <a href="../index.html">Containers</a> &#x00BB; Hashtbl</nav><h1>Module <code>Containers.Hashtbl</code></h1><dl><dt>since</dt><dd>0.14</dd></dl></header><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> Hashtbl <span class="keyword">with</span> <span class="keyword">type</span> <a href="../index.html#module-Hashtbl">Hashtbl</a>.statistics = Hashtbl.statistics <span class="keyword">and</span> <span class="keyword">module</span> <a href="../index.html#module-Hashtbl">Hashtbl</a>.Make = Hashtbl.Make <span class="keyword">and</span> <span class="keyword">type</span> <span>('a, 'b) <a href="../index.html#module-Hashtbl">Hashtbl</a>.t</span> = <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span></code></span></summary><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>('a, 'b) t</span></code><code> = <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span></code></dt></dl><dl><dt class="spec value" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : <span>?&#8288;random:bool</span> <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-reset"><a href="#val-reset" class="anchor"></a><code><span class="keyword">val</span> reset : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-copy"><a href="#val-copy" class="anchor"></a><code><span class="keyword">val</span> copy : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span></code></dt><dt class="spec value" id="val-add"><a href="#val-add" class="anchor"></a><code><span class="keyword">val</span> add : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-find"><a href="#val-find" class="anchor"></a><code><span class="keyword">val</span> find : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span></code></dt><dt class="spec value" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><code><span class="keyword">val</span> find_opt : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> option</span></code></dt><dt class="spec value" id="val-find_all"><a href="#val-find_all" class="anchor"></a><code><span class="keyword">val</span> find_all : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> list</span></code></dt><dt class="spec value" id="val-mem"><a href="#val-mem" class="anchor"></a><code><span class="keyword">val</span> mem : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-remove"><a href="#val-remove" class="anchor"></a><code><span class="keyword">val</span> remove : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-replace"><a href="#val-replace" class="anchor"></a><code><span class="keyword">val</span> replace : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span class="keyword">val</span> iter : <span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-filter_map_inplace"><a href="#val-filter_map_inplace" class="anchor"></a><code><span class="keyword">val</span> filter_map_inplace : <span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> option</span>)</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span class="keyword">val</span> fold : <span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span class="type-var">'c</span> <span>&#45;&gt;</span> <span class="type-var">'c</span>)</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span class="type-var">'c</span> <span>&#45;&gt;</span> <span class="type-var">'c</span></code></dt><dt class="spec value" id="val-length"><a href="#val-length" class="anchor"></a><code><span class="keyword">val</span> length : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-randomize"><a href="#val-randomize" class="anchor"></a><code><span class="keyword">val</span> randomize : unit <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-is_randomized"><a href="#val-is_randomized" class="anchor"></a><code><span class="keyword">val</span> is_randomized : unit <span>&#45;&gt;</span> bool</code></dt></dl><dl><dt class="spec type" id="type-statistics"><a href="#type-statistics" class="anchor"></a><code><span class="keyword">type</span> statistics</code><code> = Hashtbl.statistics</code><code> = </code><code>{</code><table class="record"><tr id="type-statistics.num_bindings" class="anchored"><td class="def field"><a href="#type-statistics.num_bindings" class="anchor"></a><code>num_bindings : int;</code></td></tr><tr id="type-statistics.num_buckets" class="anchored"><td class="def field"><a href="#type-statistics.num_buckets" class="anchor"></a><code>num_buckets : int;</code></td></tr><tr id="type-statistics.max_bucket_length" class="anchored"><td class="def field"><a href="#type-statistics.max_bucket_length" class="anchor"></a><code>max_bucket_length : int;</code></td></tr><tr id="type-statistics.bucket_histogram" class="anchored"><td class="def field"><a href="#type-statistics.bucket_histogram" class="anchor"></a><code>bucket_histogram : <span>int array</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-stats"><a href="#val-stats" class="anchor"></a><code><span class="keyword">val</span> stats : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <a href="index.html#type-statistics">statistics</a></code></dt></dl><div class="spec module-type" id="module-type-HashedType"><a href="#module-type-HashedType" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-HashedType/index.html">HashedType</a> = <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module-type" id="module-type-S"><a href="#module-type-S" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-S/index.html">S</a> = <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-Make"><a href="#module-Make" class="anchor"></a><code><span class="keyword">module</span> <a href="Make/index.html">Make</a> : <span class="keyword">functor</span> (<a href="Make/index.html#argument-1-H">H</a> : Hashtbl.HashedType) <span>&#45;&gt;</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module-type" id="module-type-SeededHashedType"><a href="#module-type-SeededHashedType" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-SeededHashedType/index.html">SeededHashedType</a> = <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module-type" id="module-type-SeededS"><a href="#module-type-SeededS" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-SeededS/index.html">SeededS</a> = <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-MakeSeeded"><a href="#module-MakeSeeded" class="anchor"></a><code><span class="keyword">module</span> <a href="MakeSeeded/index.html">MakeSeeded</a> : <span class="keyword">functor</span> (<a href="MakeSeeded/argument-1-H/index.html">H</a> : <a href="index.html#module-type-SeededHashedType">SeededHashedType</a>) <span>&#45;&gt;</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <span class="type-var">'a</span> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-seeded_hash"><a href="#val-seeded_hash" class="anchor"></a><code><span class="keyword">val</span> seeded_hash : int <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-hash_param"><a href="#val-hash_param" class="anchor"></a><code><span class="keyword">val</span> hash_param : int <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-seeded_hash_param"><a href="#val-seeded_hash_param" class="anchor"></a><code><span class="keyword">val</span> seeded_hash_param : int <span>&#45;&gt;</span> int <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> int</code></dt></dl></details></div></div></div><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../CCHashtbl/index.html#module-Poly">CCHashtbl.Poly</a></code></span></summary><dl><dt class="spec value" id="val-get"><a href="#val-get" class="anchor"></a><code><span class="keyword">val</span> get : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> option</span></code></dt><dd><p>Safe version of <span class="xref-unresolved" title="unresolved reference to &quot;Hashtbl.find&quot;"><a href="../index.html#module-Hashtbl"><code>Hashtbl</code></a>.find</span>.</p></dd></dl><dl><dt class="spec value" id="val-get_or"><a href="#val-get_or" class="anchor"></a><code><span class="keyword">val</span> get_or : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span>default:<span class="type-var">'b</span></span> <span>&#45;&gt;</span> <span class="type-var">'b</span></code></dt><dd><p><code>get_or tbl k ~default</code> returns the value associated to <code>k</code> if present, and returns <code>default</code> otherwise (if <code>k</code> doesn't belong in <code>tbl</code>).</p><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-keys"><a href="#val-keys" class="anchor"></a><code><span class="keyword">val</span> keys : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../../CCHashtbl/index.html#type-sequence">CCHashtbl.sequence</a></span></code></dt><dd><p>Iterate on keys (similar order as <span class="xref-unresolved" title="unresolved reference to &quot;Hashtbl.iter&quot;"><a href="../index.html#module-Hashtbl"><code>Hashtbl</code></a>.iter</span>).</p></dd></dl><dl><dt class="spec value" id="val-values"><a href="#val-values" class="anchor"></a><code><span class="keyword">val</span> values : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> <a href="../../CCHashtbl/index.html#type-sequence">CCHashtbl.sequence</a></span></code></dt><dd><p>Iterate on values in the table.</p></dd></dl><dl><dt class="spec value" id="val-keys_list"><a href="#val-keys_list" class="anchor"></a><code><span class="keyword">val</span> keys_list : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> list</span></code></dt><dd><p><code>keys_list t</code> is the list of keys in <code>t</code>. If the key is in the Hashtable multiple times, all occurrences will be returned.</p><dl><dt>since</dt><dd>0.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-values_list"><a href="#val-values_list" class="anchor"></a><code><span class="keyword">val</span> values_list : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> list</span></code></dt><dd><p><code>values_list t</code> is the list of values in <code>t</code>.</p><dl><dt>since</dt><dd>0.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-map_list"><a href="#val-map_list" class="anchor"></a><code><span class="keyword">val</span> map_list : <span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span class="type-var">'c</span>)</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'c</span> list</span></code></dt><dd><p>Map on a hashtable's items, collect into a list.</p></dd></dl><dl><dt class="spec value" id="val-incr"><a href="#val-incr" class="anchor"></a><code><span class="keyword">val</span> incr : <span>?&#8288;by:int</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, int)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>incr ?by tbl x</code> increments or initializes the counter associated with <code>x</code>. If <code>get tbl x = None</code>, then after update, <code>get tbl x = Some 1</code>; otherwise, if <code>get tbl x = Some n</code>, now <code>get tbl x = Some (n+1)</code>.</p><dl><dt>parameter by</dt><dd><p>if specified, the int value is incremented by <code>by</code> rather than 1.</p></dd></dl><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-decr"><a href="#val-decr" class="anchor"></a><code><span class="keyword">val</span> decr : <span>?&#8288;by:int</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, int)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> unit</code></dt><dd><p>Like <a href="index.html#val-incr"><code>incr</code></a> but subtract 1 (or the value of <code>by</code>). 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.</p><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><code><span class="keyword">val</span> to_seq : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="../../CCHashtbl/index.html#type-sequence">CCHashtbl.sequence</a></span></code></dt><dd><p>Iterate on bindings in the table.</p></dd></dl><dl><dt class="spec value" id="val-add_list"><a href="#val-add_list" class="anchor"></a><code><span class="keyword">val</span> add_list : <span><span>(<span class="type-var">'a</span>, <span><span class="type-var">'b</span> list</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>add_list tbl x y</code> adds <code>y</code> to the list <code>x</code> is bound to. If <code>x</code> is not bound, it becomes bound to <code>y</code>.</p><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-add_seq"><a href="#val-add_seq" class="anchor"></a><code><span class="keyword">val</span> add_seq : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="../../CCHashtbl/index.html#type-sequence">CCHashtbl.sequence</a></span> <span>&#45;&gt;</span> unit</code></dt><dd><p>Add the corresponding pairs to the table, using <span class="xref-unresolved" title="unresolved reference to &quot;Hashtbl.add&quot;"><a href="../index.html#module-Hashtbl"><code>Hashtbl</code></a>.add</span>.</p><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><code><span class="keyword">val</span> of_seq : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="../../CCHashtbl/index.html#type-sequence">CCHashtbl.sequence</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span></code></dt><dd><p>From the given bindings, added in order.</p></dd></dl><dl><dt class="spec value" id="val-add_seq_count"><a href="#val-add_seq_count" class="anchor"></a><code><span class="keyword">val</span> add_seq_count : <span><span>(<span class="type-var">'a</span>, int)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../../CCHashtbl/index.html#type-sequence">CCHashtbl.sequence</a></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>add_seq_count tbl seq</code> increments the count of each element of <code>seq</code> by calling <a href="index.html#val-incr"><code>incr</code></a>. This is useful for counting how many times each element of <code>seq</code> occurs.</p><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_seq_count"><a href="#val-of_seq_count" class="anchor"></a><code><span class="keyword">val</span> of_seq_count : <span><span class="type-var">'a</span> <a href="../../CCHashtbl/index.html#type-sequence">CCHashtbl.sequence</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, int)</span> Hashtbl.t</span></code></dt><dd><p>Like <a href="index.html#val-add_seq_count"><code>add_seq_count</code></a>, but allocates a new table and returns it.</p><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-to_list"><a href="#val-to_list" class="anchor"></a><code><span class="keyword">val</span> to_list : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> list</span></code></dt><dd><p>List of bindings (order unspecified).</p></dd></dl><dl><dt class="spec value" id="val-of_list"><a href="#val-of_list" class="anchor"></a><code><span class="keyword">val</span> of_list : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> list</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span></code></dt><dd><p>Build a table from the given list of bindings <code>k_i -&gt; v_i</code>, added in order using <a href="index.html#val-add"><code>add</code></a>. If a key occurs several times, it will be added several times, and the visible binding will be the last one.</p></dd></dl><dl><dt class="spec value" id="val-update"><a href="#val-update" class="anchor"></a><code><span class="keyword">val</span> update : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span>f:<span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> option</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> option</span>)</span></span> <span>&#45;&gt;</span> <span>k:<span class="type-var">'a</span></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>update tbl ~f ~k</code> updates key <code>k</code> by calling <code>f k (Some v)</code> if <code>k</code> was mapped to <code>v</code>, or <code>f k None</code> otherwise; if the call returns <code>None</code> then <code>k</code> is removed/stays removed, if the call returns <code>Some v'</code> then the binding <code>k -&gt; v'</code> is inserted using <span class="xref-unresolved" title="unresolved reference to &quot;Hashtbl.replace&quot;"><a href="../index.html#module-Hashtbl"><code>Hashtbl</code></a>.replace</span>.</p><dl><dt>since</dt><dd>0.14</dd></dl></dd></dl><dl><dt class="spec value" id="val-get_or_add"><a href="#val-get_or_add" class="anchor"></a><code><span class="keyword">val</span> get_or_add : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <span>&#45;&gt;</span> <span>f:<span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span>)</span></span> <span>&#45;&gt;</span> <span>k:<span class="type-var">'a</span></span> <span>&#45;&gt;</span> <span class="type-var">'b</span></code></dt><dd><p><code>get_or_add tbl ~k ~f</code> finds and returns the binding of <code>k</code> in <code>tbl</code>, if it exists. If it does not exist, then <code>f k</code> is called to obtain a new binding <code>v</code>; <code>k -&gt; v</code> is added to <code>tbl</code> and <code>v</code> is returned.</p><dl><dt>since</dt><dd>1.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><span class="type-var">'a</span> <a href="../../CCHashtbl/index.html#type-printer">CCHashtbl.printer</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> <a href="../../CCHashtbl/index.html#type-printer">CCHashtbl.printer</a></span> <span>&#45;&gt;</span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Hashtbl.t</span> <a href="../../CCHashtbl/index.html#type-printer">CCHashtbl.printer</a></span></code></dt><dd><p>Printer for table. Renamed from <code>print</code> since 2.0.</p><dl><dt>since</dt><dd>0.13</dd></dl></dd></dl></details></div></div></div><div class="spec module-type" id="module-type-S'"><a href="#module-type-S'" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-S'/index.html">S'</a> = <a href="../../CCHashtbl/index.html#module-type-S">CCHashtbl.S</a></code></div><div class="spec module" id="module-Make'"><a href="#module-Make'" class="anchor"></a><code><span class="keyword">module</span> Make' = <a href="../../CCHashtbl/index.html#module-Make">CCHashtbl.Make</a></code></div></div></body></html>