mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-17 08:06:43 -05:00
2 lines
No EOL
9.6 KiB
HTML
2 lines
No EOL
9.6 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Make (ocaml.Stdlib.Weak.Make)</title><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../../index.html">ocaml</a> » <a href="../../index.html">Stdlib</a> » <a href="../index.html">Weak</a> » Make</nav><header class="odoc-preamble"><h1>Module <code><span>Weak.Make</span></code></h1><p>Functor building an implementation of the weak hash set structure. <code>H.equal</code> can't be the physical equality, since only shallow copies of the elements in the set are given to it.</p></header><nav class="odoc-toc"><ul><li><a href="#parameters">Parameters</a></li><li><a href="#signature">Signature</a></li></ul></nav><div class="odoc-content"><h2 id="parameters"><a href="#parameters" class="anchor"></a>Parameters</h2><div class="odoc-spec"><div class="spec parameter anchored" id="argument-1-H"><a href="#argument-1-H" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="argument-1-H/index.html">H</a></span><span> : <a href="../../Hashtbl/module-type-HashedType/index.html">Hashtbl.HashedType</a></span></code></div></div><h2 id="signature"><a href="#signature" class="anchor"></a>Signature</h2><div class="odoc-spec"><div class="spec type anchored" id="type-data"><a href="#type-data" class="anchor"></a><code><span><span class="keyword">type</span> data</span><span> = <a href="argument-1-H/index.html#type-t">H.t</a></span></code></div><div class="spec-doc"><p>The type of the elements stored in the table.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>The type of tables that contain elements of type <code>data</code>. Note that weak hash sets cannot be marshaled using <a href="../../index.html#val-output_value"><code>Stdlib.output_value</code></a> or the functions of the <a href="../../Marshal/index.html"><code>Marshal</code></a> module.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>create n</code> creates a new empty weak hash set, of initial size <code>n</code>. The table will grow as needed.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span><span class="keyword">val</span> clear : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Remove all elements from the table.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-merge"><a href="#val-merge" class="anchor"></a><code><span><span class="keyword">val</span> merge : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> <span class="arrow">-></span></span> <a href="#type-data">data</a></span></code></div><div class="spec-doc"><p><code>merge t x</code> returns an instance of <code>x</code> found in <code>t</code> if any, or else adds <code>x</code> to <code>t</code> and return <code>x</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>add t x</code> adds <code>x</code> to <code>t</code>. If there is already an instance of <code>x</code> in <code>t</code>, it is unspecified which one will be returned by subsequent calls to <code>find</code> and <code>merge</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-remove"><a href="#val-remove" class="anchor"></a><code><span><span class="keyword">val</span> remove : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>remove t x</code> removes from <code>t</code> one instance of <code>x</code>. Does nothing if there is no instance of <code>x</code> in <code>t</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find"><a href="#val-find" class="anchor"></a><code><span><span class="keyword">val</span> find : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> <span class="arrow">-></span></span> <a href="#type-data">data</a></span></code></div><div class="spec-doc"><p><code>find t x</code> returns an instance of <code>x</code> found in <code>t</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Not_found</span> <p>if there is no such element.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><code><span><span class="keyword">val</span> find_opt : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> option</span></span></code></div><div class="spec-doc"><p><code>find_opt t x</code> returns an instance of <code>x</code> found in <code>t</code> or <code>None</code> if there is no such element.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.05</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find_all"><a href="#val-find_all" class="anchor"></a><code><span><span class="keyword">val</span> find_all : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> list</span></span></code></div><div class="spec-doc"><p><code>find_all t x</code> returns a list of all the instances of <code>x</code> found in <code>t</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mem"><a href="#val-mem" class="anchor"></a><code><span><span class="keyword">val</span> mem : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-data">data</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>mem t x</code> returns <code>true</code> if there is at least one instance of <code>x</code> in <code>t</code>, false otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span><span class="keyword">val</span> iter : <span><span>(<span><a href="#type-data">data</a> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iter f t</code> calls <code>f</code> on each element of <code>t</code>, in some unspecified order. It is not specified what happens if <code>f</code> tries to change <code>t</code> itself.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span><span class="keyword">val</span> fold : <span><span>(<span><a href="#type-data">data</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>fold f t init</code> computes <code>(f d1 (... (f dN init)))</code> where <code>d1 ... dN</code> are the elements of <code>t</code> in some unspecified order. It is not specified what happens if <code>f</code> tries to change <code>t</code> itself.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-count"><a href="#val-count" class="anchor"></a><code><span><span class="keyword">val</span> count : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Count the number of elements in the table. <code>count t</code> gives the same result as <code>fold (fun _ n -> n+1) t 0</code> but does not delay the deallocation of the dead elements.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-stats"><a href="#val-stats" class="anchor"></a><code><span><span class="keyword">val</span> stats : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int * int * int * int * int * int</span></code></div><div class="spec-doc"><p>Return statistics on the table. The numbers are, in order: table length, number of entries, sum of bucket lengths, smallest bucket length, median bucket length, biggest bucket length.</p></div></div></div></body></html> |