ocaml-containers/2.1/containers/CCVector/index.html
2018-03-28 20:36:52 -05:00

23 lines
No EOL
45 KiB
HTML
Raw Permalink 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.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCVector (containers.CCVector)</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> &mdash; <span class="package">package <a href="../index.html">containers</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">CCVector</span></h1></header><h2>Growable, mutable vector</h2><div class="spec type" id="type-ro"><a href="#type-ro" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>ro</code><span class="keyword"> = </span><code>[ </code><table class="variant"><tr id="type-ro.RO" class="anchored"><td class="def constructor"><a href="#type-ro.RO" class="anchor"></a><code><span class="keyword">| </span></code><code>`RO</code></td></tr></table><code> ]</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-rw"><a href="#type-rw" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>rw</code><span class="keyword"> = </span><code>[ </code><table class="variant"><tr id="type-rw.RW" class="anchored"><td class="def constructor"><a href="#type-rw.RW" class="anchor"></a><code><span class="keyword">| </span></code><code>`RW</code></td></tr></table><code> ]</code><code></code></div><div class="doc"></div></div><p>Mutability is <code class="code">rw</code> (read-write) or <code class="code">ro</code> (read-only).</p><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>('a, 'mut) t</code><code></code><code></code></div><div class="doc"><p>The type of a vector of elements of type <code class="code">'a</code>, with
a mutability flat <code class="code">'mut</code>.</p></div></div><div class="spec type" id="type-vector"><a href="#type-vector" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a vector</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a></code><code></code></div><div class="doc"><p>Type synonym: a <code class="code">'a vector</code> is mutable.</p></div></div><div class="spec type" id="type-ro_vector"><a href="#type-ro_vector" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a ro_vector</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span>, <a href="index.html#type-ro">ro</a>) <a href="index.html#type-t">t</a></code><code></code></div><div class="doc"><p>Alias for immutable vectors.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.15</li></ul></div></div><div class="spec type" id="type-sequence"><a href="#type-sequence" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a sequence</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> unit</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-klist"><a href="#type-klist" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a klist</code><code><span class="keyword"> = </span>unit <span class="keyword">&#8209;&gt;</span> [ `Nil | `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><code></code></div><div class="doc"></div></div><div class="spec type" id="type-gen"><a href="#type-gen" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a gen</code><code><span class="keyword"> = </span>unit <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-equal"><a href="#type-equal" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a equal</code><code><span class="keyword"> = </span><span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-ord"><a href="#type-ord" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a ord</code><code><span class="keyword"> = </span><span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-printer"><a href="#type-printer" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a printer</code><code><span class="keyword"> = </span>Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-freeze"><a href="#val-freeze" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>freeze : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-ro">ro</a>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Make an immutable vector (no copy! Don't use the old version).</p></div></div><div class="spec val" id="val-freeze_copy"><a href="#val-freeze_copy" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>freeze_copy : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-ro">ro</a>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Copy the vector into an immutable version.</p></div></div><div class="spec val" id="val-create"><a href="#val-create" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create : unit <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a new, empty vector.</p></div></div><div class="spec val" id="val-create_with"><a href="#val-create_with" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_with : ?&#8288;capacity:int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a new vector, using the given value as a filler.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">capacity</span>: the size of the underlying array.
<b>caution</b>: the value will likely not be GC'd before the vector is.</li></ul></div></div><div class="spec val" id="val-return"><a href="#val-return" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>return : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Singleton vector.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-make"><a href="#val-make" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>make : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">make n x</code> makes a vector of size <code class="code">n</code>, filled with <code class="code">x</code>.</p></div></div><div class="spec val" id="val-init"><a href="#val-init" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init : int <span class="keyword">&#8209;&gt;</span> (int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Init the vector with the given function and size.</p></div></div><div class="spec val" id="val-clear"><a href="#val-clear" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>clear : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Clear the content of the vector.</p></div></div><div class="spec val" id="val-ensure_with"><a href="#val-ensure_with" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>ensure_with : init:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Hint to the vector that it should have at least the given capacity.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">init</span>: if <code class="code">capacity v = 0</code>, used as a filler
element for the underlying array (see <a href="index.html#val-create_with">create_with</a>).</li><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-ensure"><a href="#val-ensure" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>ensure : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Hint to the vector that it should have at least the given capacity.
Just a hint, will not be enforced if the vector is empty and <code class="code">init</code>
is not provided.</p></div></div><div class="spec val" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_empty : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Is the vector empty?</p></div></div><div class="spec val" id="val-push"><a href="#val-push" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>push : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Add an element at the end of the vector.</p></div></div><div class="spec val" id="val-append"><a href="#val-append" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p><code class="code">append a b</code> adds all elements of b to a.</p></div></div><div class="spec val" id="val-append_array"><a href="#val-append_array" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append_array : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> array <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Like <a href="index.html#val-append">append</a>, with an array.</p></div></div><div class="spec val" id="val-append_seq"><a href="#val-append_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append_seq : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Append content of sequence.</p></div></div><div class="spec val" id="val-append_list"><a href="#val-append_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append_list : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Append content of list.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-append_gen"><a href="#val-append_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append_gen : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Append content of generator.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.20</li></ul></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <span class="type-var">'a</span> <a href="index.html#type-equal">equal</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <a href="index.html#type-equal">equal</a></code></div><div class="doc"></div></div><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <span class="type-var">'a</span> <a href="index.html#type-ord">ord</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <a href="index.html#type-ord">ord</a></code></div><div class="doc"><p>Total ordering on vectors. Lexicographic comparison.</p></div></div><div class="spec exception" id="exception-Empty"><a href="#exception-Empty" class="anchor"></a><div class="def exception"><code><span class="keyword">exception </span></code><code><span class="exception">Empty</span></code></div><div class="doc"><p>Raised on empty stack.</p></div></div><div class="spec val" id="val-pop"><a href="#val-pop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pop : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Remove last element, or <code class="code">None</code>.</p></div></div><div class="spec val" id="val-pop_exn"><a href="#val-pop_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pop_exn : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Remove last element, or raise a Failure if empty.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Empty</span>: on an empty vector.</li></ul></div></div><div class="spec val" id="val-top"><a href="#val-top" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>top : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Top element, if present.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.6</li></ul></div></div><div class="spec val" id="val-top_exn"><a href="#val-top_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>top_exn : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Top element, if present.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Empty</span>: on an empty vector.</li><li><span class="at-tag since">Since</span>: 0.6</li></ul></div></div><div class="spec val" id="val-copy"><a href="#val-copy" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>copy : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Shallow copy (may give an immutable or mutable vector).</p></div></div><div class="spec val" id="val-shrink"><a href="#val-shrink" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>shrink : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Shrink to the given size (remove elements above this size).
Does nothing if the parameter is bigger than the current size.</p></div></div><div class="spec val" id="val-member"><a href="#val-member" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>member : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Is the element a member of the vector?</p></div></div><div class="spec val" id="val-sort"><a href="#val-sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Sort the vector, returning a copy of it that is sorted
w.r.t the given ordering. The vector itself is unchanged.</p></div></div><div class="spec val" id="val-sort'"><a href="#val-sort'" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort' : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Sort the vector in place (modifying it).</p></div></div><div class="spec val" id="val-uniq_sort"><a href="#val-uniq_sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>uniq_sort : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Sort the array and remove duplicates, in place (e.g. modifying
the vector itself).</p></div></div><div class="spec val" id="val-iter"><a href="#val-iter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iter : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Iterate on the vector's content.</p></div></div><div class="spec val" id="val-iteri"><a href="#val-iteri" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iteri : (int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Iterate on the vector, with indexes.</p></div></div><div class="spec val" id="val-map"><a href="#val-map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Map elements of the vector, yielding a new vector.</p></div></div><div class="spec val" id="val-filter"><a href="#val-filter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Filter elements from the vector. <code class="code">filter p v</code> leaves <code class="code">v</code> unchanged but
returns a new vector that only contains elements of <code class="code">v</code> satisfying <code class="code">p</code>.</p></div></div><div class="spec val" id="val-filter'"><a href="#val-filter'" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter' : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Filter elements in place.</p></div></div><div class="spec val" id="val-fold"><a href="#val-fold" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold : (<span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span></code></div><div class="doc"><p>Fold on elements of the vector</p></div></div><div class="spec val" id="val-exists"><a href="#val-exists" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exists : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Existential test (is there an element that satisfies the predicate?).</p></div></div><div class="spec val" id="val-for_all"><a href="#val-for_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>for_all : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Universal test (do all the elements satisfy the predicate?).</p></div></div><div class="spec val" id="val-find"><a href="#val-find" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Find an element that satisfies the predicate.</p></div></div><div class="spec val" id="val-find_exn"><a href="#val-find_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_exn : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Find an element that satisfies the predicate, or</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if no element does.</li></ul></div></div><div class="spec val" id="val-find_map"><a href="#val-find_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_map : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option</code></div><div class="doc"><p><code class="code">find_map f v</code> returns the first <code class="code">Some y = f x</code> for <code class="code">x</code> in <code class="code">v</code>,
or <code class="code">None</code> if <code class="code">f x = None</code> for each <code class="code">x</code> in <code class="code">v</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-filter_map"><a href="#val-filter_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter_map : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Map elements with a function, possibly filtering some of them out.</p></div></div><div class="spec val" id="val-flat_map"><a href="#val-flat_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flat_map : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Map each element to a sub-vector.</p></div></div><div class="spec val" id="val-flat_map_seq"><a href="#val-flat_map_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flat_map_seq : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-sequence">sequence</a>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <a href="index.html#val-flat_map">flat_map</a>, but using <a href="index.html#type-sequence">sequence</a> for
intermediate collections.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-flat_map_list"><a href="#val-flat_map_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flat_map_list : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <a href="index.html#val-flat_map">flat_map</a>, but using list for
intermediate collections.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-(&gt;&gt;=)"><a href="#val-(&gt;&gt;=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&gt;&gt;=) : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix version of <a href="index.html#val-flat_map">flat_map</a>.</p></div></div><div class="spec val" id="val-(&gt;|=)"><a href="#val-(&gt;|=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&gt;|=) : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix version of <a href="index.html#val-map">map</a>.</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 : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Access element by its index, or</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if bad index.</li></ul></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 : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Modify element at given index, or</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if bad index.</li></ul></div></div><div class="spec val" id="val-remove"><a href="#val-remove" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Remove the <code class="code">n-th</code> element of the vector. Does <b>NOT</b> preserve the order
of the elements (might swap with the last element).</p></div></div><div class="spec val" id="val-rev"><a href="#val-rev" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Reverse the vector.</p></div></div><div class="spec val" id="val-rev_in_place"><a href="#val-rev_in_place" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_in_place : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reverse the vector in place.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-rev_iter"><a href="#val-rev_iter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_iter : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p><code class="code">rev_iter f a</code> is the same as <code class="code">iter f (rev a)</code>, only more efficient.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-size"><a href="#val-size" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>size : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><p>Number of elements in the vector.</p></div></div><div class="spec val" id="val-length"><a href="#val-length" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>length : (<span class="type-var">_</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><p>Synonym for <a href="index.html#val-size">size</a>.</p></div></div><div class="spec val" id="val-capacity"><a href="#val-capacity" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>capacity : (<span class="type-var">_</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><p>Number of elements the vector can contain without being resized.</p></div></div><div class="spec val" id="val-unsafe_get_array"><a href="#val-unsafe_get_array" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>unsafe_get_array : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> array</code></div><div class="doc"><p>Access the underlying <b>shared</b> array (do not modify!).
<code class="code">unsafe_get_array v</code> is longer than <code class="code">size v</code>, but elements at higher
index than <code class="code">size v</code> are undefined (do not access!).</p></div></div><div class="spec val" id="val-(--)"><a href="#val-(--)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(--) : int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> (int, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Range of integers, either ascending or descending (both included,
therefore the result is never empty).
Example: <code class="code">1 -- 10</code> returns the vector <code class="code">[1;2;3;4;5;6;7;8;9;10]</code>.</p></div></div><div class="spec val" id="val-(--^)"><a href="#val-(--^)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(--^) : int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> (int, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Range of integers, either ascending or descending, but excluding right.
Example: <code class="code">1 --^ 10</code> returns the vector <code class="code">[1;2;3;4;5;6;7;8;9]</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-of_array"><a href="#val-of_array" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_array : <span class="type-var">'a</span> array <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">of_array a</code> returns a vector corresponding to the array <code class="code">a</code>. Operates in <code class="code">O(n)</code> time.</p></div></div><div class="spec val" id="val-of_list"><a href="#val-of_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_list : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">'mut</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_array"><a href="#val-to_array" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_array : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> array</code></div><div class="doc"><p><code class="code">to_array v</code> returns an array corresponding to the vector <code class="code">v</code>.</p></div></div><div class="spec val" id="val-to_list"><a href="#val-to_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_list : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p>Return a list with the elements contained in the vector.</p></div></div><div class="spec val" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_seq : ?&#8288;init:(<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_seq : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a></code></div><div class="doc"><p>Return a <code class="code">sequence</code> with the elements contained in the vector.</p></div></div><div class="spec val" id="val-to_seq_rev"><a href="#val-to_seq_rev" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_seq_rev : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a></code></div><div class="doc"><p><code class="code">to_seq_rev v</code> returns the sequence of elements of <code class="code">v</code> in reverse order,
that is, the last elements of <code class="code">v</code> are iterated on first.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-slice"><a href="#val-slice" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>slice : (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> array<span class="keyword"> * </span>int<span class="keyword"> * </span>int</code></div><div class="doc"><p>Vector as an array slice. By doing it we expose the internal array, so
be careful!.</p></div></div><div class="spec val" id="val-slice_seq"><a href="#val-slice_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>slice_seq : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a></code></div><div class="doc"><p><code class="code">slice_seq v start len</code> is the sequence of elements from <code class="code">v.(start)</code>
to <code class="code">v.(start+len-1)</code>.</p></div></div><div class="spec val" id="val-of_klist"><a href="#val-of_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_klist : ?&#8288;init:(<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_klist"><a href="#val-to_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_klist : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a></code></div><div class="doc"></div></div><div class="spec val" id="val-of_gen"><a href="#val-of_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_gen : ?&#8288;init:(<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <a href="index.html#type-rw">rw</a>) <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_gen"><a href="#val-to_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_gen : (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : ?&#8288;start:string <span class="keyword">&#8209;&gt;</span> ?&#8288;stop:string <span class="keyword">&#8209;&gt;</span> ?&#8288;sep:string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-printer">printer</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, <span class="type-var">_</span>) <a href="index.html#type-t">t</a> <a href="index.html#type-printer">printer</a></code></div><div class="doc"></div></div></body></html>