moonpool/dev/ocaml/Stdlib/Weak/Make/index.html
2023-08-28 17:11:38 +00:00

2 lines
No EOL
9.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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>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> &#x00BB; <a href="../../index.html">Stdlib</a> &#x00BB; <a href="../index.html">Weak</a> &#x00BB; 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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-data">data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-data">data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-data">data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-data">data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-data">data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-data">data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-data">data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</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 -&gt; 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">&#45;&gt;</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>