ocaml-containers/dev/containers/CCHashtbl/Poly/index.html
2021-02-06 17:22:47 +00:00

2 lines
No EOL
21 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>Poly (containers.CCHashtbl.Poly)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">CCHashtbl</a> &#x00BB; Poly</nav><h1>Module <code>CCHashtbl.Poly</code></h1></header><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> Stdlib.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><code>get tbl k</code> finds a binding for the key <code>k</code> if present, or returns <code>None</code> if no value is found. Safe version of <span class="xref-unresolved" title="unresolved reference to &quot;Hashtbl.find&quot;"><code>Hashtbl</code>.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> Stdlib.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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../index.html#type-iter">iter</a></span></code></dt><dd><p><code>keys tbl f</code> iterates on keys (similar order as <span class="xref-unresolved" title="unresolved reference to &quot;Hashtbl.iter&quot;"><code>Hashtbl</code>.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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> <a href="../index.html#type-iter">iter</a></span></code></dt><dd><p><code>values tbl f</code> iterates on values in the table <code>tbl</code>.</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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> list</span></code></dt><dd><p><code>keys_list tbl</code> is the list of keys in <code>tbl</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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> list</span></code></dt><dd><p><code>values_list tbl</code> is the list of values in <code>tbl</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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'c</span> list</span></code></dt><dd><p><code>map_list f tbl</code> maps on a <code>tbl</code>'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> Stdlib.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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>decr ?by tbl x</code> is 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_iter"><a href="#val-to_iter" class="anchor"></a><code><span class="keyword">val</span> to_iter : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</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-iter">iter</a></span></code></dt><dd><p>Iterate on bindings in the table.</p><dl><dt>since</dt><dd>2.8</dd></dl></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> Stdlib.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_iter"><a href="#val-add_iter" class="anchor"></a><code><span class="keyword">val</span> add_iter : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</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-iter">iter</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;"><code>Hashtbl</code>.add</span>.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-add_iter_with"><a href="#val-add_iter_with" class="anchor"></a><code><span class="keyword">val</span> add_iter_with : <span>f:<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">'b</span> <span>&#45;&gt;</span> <span class="type-var">'b</span>)</span></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</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-iter">iter</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;"><code>Hashtbl</code>.add</span>. If a key occurs multiple times in the input, the values are combined using <code>f</code> in an unspecified order.</p><dl><dt>since</dt><dd>NEXT_RELEASE</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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> Stdlib.Seq.t</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;"><code>Hashtbl</code>.add</span>. Renamed from <code>add_std_seq</code> since 3.0.</p><dl><dt>since</dt><dd>3.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-add_seq_with"><a href="#val-add_seq_with" class="anchor"></a><code><span class="keyword">val</span> add_seq_with : <span>f:<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">'b</span> <span>&#45;&gt;</span> <span class="type-var">'b</span>)</span></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> Stdlib.Seq.t</span> <span>&#45;&gt;</span> unit</code></dt><dd><p>Add the corresponding pairs to the table. If a key occurs multiple times in the input, the values are combined using <code>f</code> in an unspecified order.</p><dl><dt>since</dt><dd>NEXT_RELEASE</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_iter"><a href="#val-of_iter" class="anchor"></a><code><span class="keyword">val</span> of_iter : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="../index.html#type-iter">iter</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</span></code></dt><dd><p>From the given bindings, added in order.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_iter_with"><a href="#val-of_iter_with" class="anchor"></a><code><span class="keyword">val</span> of_iter_with : <span>f:<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">'b</span> <span>&#45;&gt;</span> <span class="type-var">'b</span>)</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-iter">iter</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</span></code></dt><dd><p>From the given bindings, added in order. If a key occurs multiple times in the input, the values are combined using <code>f</code> in an unspecified order.</p><dl><dt>since</dt><dd>NEXT_RELEASE</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> Stdlib.Seq.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</span></code></dt><dd><p>From the given bindings, added in order. Renamed from <code>of_std_seq</code> since 3.0.</p><dl><dt>since</dt><dd>3.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_seq_with"><a href="#val-of_seq_with" class="anchor"></a><code><span class="keyword">val</span> of_seq_with : <span>f:<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">'b</span> <span>&#45;&gt;</span> <span class="type-var">'b</span>)</span></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> Stdlib.Seq.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</span></code></dt><dd><p>From the given bindings, added in order. If a key occurs multiple times in the input, the values are combined using <code>f</code> in an unspecified order.</p><dl><dt>since</dt><dd>NEXT_RELEASE</dd></dl></dd></dl><dl><dt class="spec value" id="val-add_iter_count"><a href="#val-add_iter_count" class="anchor"></a><code><span class="keyword">val</span> add_iter_count : <span><span>(<span class="type-var">'a</span>, int)</span> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../index.html#type-iter">iter</a></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>add_iter_count tbl i</code> increments the count of each element of <code>i</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>i</code> occurs.</p><dl><dt>since</dt><dd>2.8</dd></dl></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> Stdlib.Hashtbl.t</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> Stdlib.Seq.t</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. Renamed from <code>add_std_seq_count</code> since 3.0.</p><dl><dt>since</dt><dd>3.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_iter_count"><a href="#val-of_iter_count" class="anchor"></a><code><span class="keyword">val</span> of_iter_count : <span><span class="type-var">'a</span> <a href="../index.html#type-iter">iter</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, int)</span> Stdlib.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>2.8</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> Stdlib.Seq.t</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span>, int)</span> Stdlib.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. Renamed from <code>of_std_seq_count</code> since 3.0.</p><dl><dt>since</dt><dd>3.0</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> Stdlib.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><code>to_list tbl</code> returns the list of (key,value) 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> Stdlib.Hashtbl.t</span></code></dt><dd><p><code>of_list l</code> builds a table from the given list <code>l</code> of bindings <code>k_i -&gt; v_i</code>, added in order using <code>add</code>. 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-of_list_with"><a href="#val-of_list_with" class="anchor"></a><code><span class="keyword">val</span> of_list_with : <span>f:<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">'b</span> <span>&#45;&gt;</span> <span class="type-var">'b</span>)</span></span> <span>&#45;&gt;</span> <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> Stdlib.Hashtbl.t</span></code></dt><dd><p>From the given bindings, added in order. If a key occurs multiple times in the input, the values are combined using <code>f</code> in an unspecified order.</p><dl><dt>since</dt><dd>NEXT_RELEASE</dd></dl></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> Stdlib.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;"><code>Hashtbl</code>.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> Stdlib.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>?&#8288;pp_start:<span>unit <a href="../index.html#type-printer">printer</a></span></span> <span>&#45;&gt;</span> <span>?&#8288;pp_stop:<span>unit <a href="../index.html#type-printer">printer</a></span></span> <span>&#45;&gt;</span> <span>?&#8288;pp_sep:<span>unit <a href="../index.html#type-printer">printer</a></span></span> <span>&#45;&gt;</span> <span>?&#8288;pp_arrow:<span>unit <a href="../index.html#type-printer">printer</a></span></span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../index.html#type-printer">printer</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> <a href="../index.html#type-printer">printer</a></span> <span>&#45;&gt;</span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> Stdlib.Hashtbl.t</span> <a href="../index.html#type-printer">printer</a></span></code></dt><dd><p><code>pp ~pp_start ~pp_stop ~pp_sep ~pp arrow pp_k pp_v</code> returns a table printer given a <code>pp_k</code> printer for individual key and a <code>pp_v</code> printer for individual value. <code>pp_start</code> and <code>pp_stop</code> control the opening and closing delimiters, by default print nothing. <code>pp_sep</code> control the separator between binding. <code>pp_arrow</code> control the arrow between the key and value. Renamed from <code>print</code> since 2.0.</p><dl><dt>since</dt><dd>0.13</dd></dl></dd></dl></div></body></html>