mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
17 lines
No EOL
4.6 KiB
HTML
17 lines
No EOL
4.6 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCMixset (containers.data.CCMixset)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> — <span class="package">package <a href="../index.html">containers.data</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">CCMixset</span></h1></header><h2>Set of Heterogeneous Values</h2><pre><code class="code"> let k1 : int key = newkey () in
|
|
let k2 : int key = newkey () in
|
|
let k3 : string key = newkey () in
|
|
let set =
|
|
empty
|
|
|> set ~key:k1 1
|
|
|> set ~key:k2 2
|
|
|> set ~key:k3 "3"
|
|
in
|
|
assert (get ~key:k1 set = Some 1);
|
|
assert (get ~key:k2 set = Some 2);
|
|
assert (get ~key:k3 set = Some "3");
|
|
()</code></pre><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>A set of values of heterogeneous types</p></div></div><div class="spec type" id="type-key"><a href="#type-key" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a key</code><code></code><code></code></div><div class="doc"><p>A unique "key" to access a value of type <code class="code">'a</code> in a <code class="code">set</code></p></div></div><div class="spec val" id="val-newkey"><a href="#val-newkey" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>newkey : unit <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-key">key</a></code></div><div class="doc"><p><code class="code">newkey ()</code> creates a new unique key that can be used to access
|
|
a <code class="code">'a</code> value in a set. Each key created with <code class="code">newkey</code> is distinct
|
|
from any other key, even if they have the same type.</p><p>Not thread-safe.</p></div></div><div class="spec val" id="val-empty"><a href="#val-empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>empty : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Empty set</p></div></div><div class="spec val" id="val-set"><a href="#val-set" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set : key:<span class="type-var">'a</span> <a href="index.html#type-key">key</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">set ~key v set</code> maps <code class="code">key</code> to <code class="code">v</code> in <code class="code">set</code>. It means that
|
|
for every <code class="code">set</code>, <code class="code">get ~key (set ~key v set) = Some v</code>.</p></div></div><div class="spec val" id="val-get"><a href="#val-get" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get : key:<span class="type-var">'a</span> <a href="index.html#type-key">key</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"><p><code class="code">get ~key set</code> obtains the value for <code class="code">key</code> in <code class="code">set</code>, if any.</p></div></div><div class="spec val" id="val-get_exn"><a href="#val-get_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_exn : key:<span class="type-var">'a</span> <a href="index.html#type-key">key</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"><p>Same as <a href="index.html#val-get">get</a>, but can fail.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if the key is not present.</li></ul></div></div><div class="spec val" id="val-cardinal"><a href="#val-cardinal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cardinal : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> int</code></div><div class="doc"><p>Number of mappings.</p></div></div></body></html> |