mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
2 lines
No EOL
13 KiB
HTML
2 lines
No EOL
13 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCHash (containers.CCHash)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><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> » CCHash</nav><h1>Module <code>CCHash</code></h1><h2 id="hash-combinators"><a href="#hash-combinators" class="anchor"></a>Hash combinators</h2><nav class="toc"><ul><li><a href="#definitions">Definitions</a></li><li><a href="#base-hash-combinators">Base hash combinators</a></li><li><a href="#iterators">Iterators</a></li></ul></nav></header><section><header><h2 id="definitions"><a href="#definitions" class="anchor"></a>Definitions</h2></header><dl><dt class="spec type" id="type-hash"><a href="#type-hash" class="anchor"></a><code><span class="keyword">type </span>hash</code><code><span class="keyword"> = </span>int</code></dt><dd><p>A hash value is a positive integer.</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type </span>'a t</code><code><span class="keyword"> = </span><span class="type-var">'a</span> <span>-></span> <a href="index.html#type-hash">hash</a></code></dt><dd><p>A hash function for values of type <code>'a</code>.</p></dd></dl><dl><dt class="spec value" id="val-const"><a href="#val-const" class="anchor"></a><code><span class="keyword">val </span>const : <a href="index.html#type-hash">hash</a> <span>-></span> <span class="type-var">_</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>const h</code> hashes any value into <code>h</code>. Use with caution!.</p></dd></dl><dl><dt class="spec value" id="val-const0"><a href="#val-const0" class="anchor"></a><code><span class="keyword">val </span>const0 : <span class="type-var">_</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Always return 0. Useful for ignoring elements. Example: <code>Hash.(pair string const0)</code> will map pairs <code>("a", 1)</code> and <code>("a", 2)</code> to the same hash, but not the same as <code>("b", 1)</code>.</p><dl><dt>since</dt><dd>1.5</dd></dl></dd></dl><dl><dt class="spec value" id="val-int"><a href="#val-int" class="anchor"></a><code><span class="keyword">val </span>int : int <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-bool"><a href="#val-bool" class="anchor"></a><code><span class="keyword">val </span>bool : bool <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-char"><a href="#val-char" class="anchor"></a><code><span class="keyword">val </span>char : char <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-int32"><a href="#val-int32" class="anchor"></a><code><span class="keyword">val </span>int32 : int32 <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-int64"><a href="#val-int64" class="anchor"></a><code><span class="keyword">val </span>int64 : int64 <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-nativeint"><a href="#val-nativeint" class="anchor"></a><code><span class="keyword">val </span>nativeint : nativeint <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-slice"><a href="#val-slice" class="anchor"></a><code><span class="keyword">val </span>slice : string <span>-></span> int <span>-></span> int <a href="index.html#type-t">t</a></code></dt><dd><p><code>slice s i len state</code> hashes the slice <code>i, ... i+len-1</code> of <code>s</code> into <code>state</code>.</p></dd></dl><dl><dt class="spec value" id="val-string"><a href="#val-string" class="anchor"></a><code><span class="keyword">val </span>string : string <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-list"><a href="#val-list" class="anchor"></a><code><span class="keyword">val </span>list : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> list <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-array"><a href="#val-array" class="anchor"></a><code><span class="keyword">val </span>array : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> array <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-opt"><a href="#val-opt" class="anchor"></a><code><span class="keyword">val </span>opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> option <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-pair"><a href="#val-pair" class="anchor"></a><code><span class="keyword">val </span>pair : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span>-></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-triple"><a href="#val-triple" class="anchor"></a><code><span class="keyword">val </span>triple : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a> <span>-></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span><span class="keyword"> * </span><span class="type-var">'c</span>) <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-quad"><a href="#val-quad" class="anchor"></a><code><span class="keyword">val </span>quad : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'d</span> <a href="index.html#type-t">t</a> <span>-></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span><span class="keyword"> * </span><span class="type-var">'c</span><span class="keyword"> * </span><span class="type-var">'d</span>) <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-if_"><a href="#val-if_" class="anchor"></a><code><span class="keyword">val </span>if_ : bool <span>-></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Decide which hash function to use depending on the boolean.</p></dd></dl><dl><dt class="spec value" id="val-poly"><a href="#val-poly" class="anchor"></a><code><span class="keyword">val </span>poly : <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></dt><dd><p>The regular polymorphic hash function. <code>poly x</code> is <code>Hashtbl.hash x</code>.</p></dd></dl><dl><dt class="spec value" id="val-list_comm"><a href="#val-list_comm" class="anchor"></a><code><span class="keyword">val </span>list_comm : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> list <a href="index.html#type-t">t</a></code></dt><dd><p>Commutative version of <a href="index.html#val-list"><code>list</code></a>. Lists that are equal up to permutation will have the same hash.</p><dl><dt>since</dt><dd>1.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-array_comm"><a href="#val-array_comm" class="anchor"></a><code><span class="keyword">val </span>array_comm : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> array <a href="index.html#type-t">t</a></code></dt><dd><p>Commutative version of <a href="index.html#val-array"><code>array</code></a>. Arrays that are equal up to permutation will have the same hash.</p><dl><dt>since</dt><dd>1.0</dd></dl></dd></dl></section><section><header><h2 id="base-hash-combinators"><a href="#base-hash-combinators" class="anchor"></a>Base hash combinators</h2></header><dl><dt class="spec value" id="val-combine"><a href="#val-combine" class="anchor"></a><code><span class="keyword">val </span>combine : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <span class="type-var">'a</span> <span>-></span> <a href="index.html#type-hash">hash</a></code></dt><dt class="spec value" id="val-combine2"><a href="#val-combine2" class="anchor"></a><code><span class="keyword">val </span>combine2 : <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a></code></dt><dt class="spec value" id="val-combine3"><a href="#val-combine3" class="anchor"></a><code><span class="keyword">val </span>combine3 : <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a></code></dt><dt class="spec value" id="val-combine4"><a href="#val-combine4" class="anchor"></a><code><span class="keyword">val </span>combine4 : <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a></code></dt><dt class="spec value" id="val-combine5"><a href="#val-combine5" class="anchor"></a><code><span class="keyword">val </span>combine5 : <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a></code></dt><dd><dl><dt>since</dt><dd>2.1</dd></dl></dd></dl><dl><dt class="spec value" id="val-combine6"><a href="#val-combine6" class="anchor"></a><code><span class="keyword">val </span>combine6 : <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a> <span>-></span> <a href="index.html#type-hash">hash</a></code></dt><dd><dl><dt>since</dt><dd>2.1</dd></dl></dd></dl></section><section><header><h2 id="iterators"><a href="#iterators" class="anchor"></a>Iterators</h2></header><dl><dt class="spec type" id="type-sequence"><a href="#type-sequence" class="anchor"></a><code><span class="keyword">type </span>'a sequence</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span> <span>-></span> unit) <span>-></span> unit</code></dt><dt class="spec type" id="type-gen"><a href="#type-gen" class="anchor"></a><code><span class="keyword">type </span>'a gen</code><code><span class="keyword"> = </span>unit <span>-></span> <span class="type-var">'a</span> option</code></dt><dt class="spec type" id="type-klist"><a href="#type-klist" class="anchor"></a><code><span class="keyword">type </span>'a klist</code><code><span class="keyword"> = </span>unit <span>-></span> [ `Nil<span class="keyword"> | </span>`Cons of <span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> ]</code></dt></dl><dl><dt class="spec value" id="val-seq"><a href="#val-seq" class="anchor"></a><code><span class="keyword">val </span>seq : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-gen"><a href="#val-gen" class="anchor"></a><code><span class="keyword">val </span>gen : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-klist"><a href="#val-klist" class="anchor"></a><code><span class="keyword">val </span>klist : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> <a href="index.html#type-t">t</a></code></dt></dl></section></div></body></html> |