mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
4 lines
No EOL
14 KiB
HTML
4 lines
No EOL
14 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCPair (containers.CCPair)</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</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">CCPair</span></h1></header><h2>Tuple Functions</h2><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, 'b) t</code><code><span class="keyword"> = </span><span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span></code><code></code></div><div class="doc"></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 : <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> (<span class="type-var">'a</span>, <span class="type-var">'b</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Make a tuple from its components.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-map1"><a href="#val-map1" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map1 : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'c</span>) <span class="keyword">‑></span> <span class="type-var">'b</span><span class="keyword"> * </span><span class="type-var">'c</span></code></div><div class="doc"><p><code class="code">map1 f (x, y)</code> returns <code class="code">(f x, y)</code>.</p></div></div><div class="spec val" id="val-map2"><a href="#val-map2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map2 : (<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">'a</span>) <span class="keyword">‑></span> <span class="type-var">'c</span><span class="keyword"> * </span><span class="type-var">'b</span></code></div><div class="doc"><p><code class="code">map2 f (x, y)</code> returns <code class="code">(x, f y)</code>.</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">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> (<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'d</span>) <span class="keyword">‑></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></code></div><div class="doc"><p>Synonym to ( *** ). Map on both sides of a tuple.</p></div></div><div class="spec val" id="val-map_same"><a href="#val-map_same" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map_same : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </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">'b</span></code></div><div class="doc"><p>Like <a href="index.html#val-map">map</a> but specialized for pairs with elements of the same type.</p></div></div><div class="spec val" id="val-map_fst"><a href="#val-map_fst" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map_fst : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">_</span>) <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"><p>Compose the given function with <code class="code">fst</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.3.3</li></ul></div></div><div class="spec val" id="val-map_snd"><a href="#val-map_snd" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map_snd : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> (<span class="type-var">_</span><span class="keyword"> * </span><span class="type-var">'a</span>) <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"><p>Compose the given function with <code class="code">snd</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.3.3</li></ul></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">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">‑></span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-swap"><a href="#val-swap" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>swap : (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'b</span><span class="keyword"> * </span><span class="type-var">'a</span></code></div><div class="doc"><p>Swap the components of the tuple.</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>(<<<) : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'c</span>) <span class="keyword">‑></span> <span class="type-var">'b</span><span class="keyword"> * </span><span class="type-var">'c</span></code></div><div class="doc"><p>Map on the left side of the tuple.</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>(>>>) : (<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">'a</span>) <span class="keyword">‑></span> <span class="type-var">'c</span><span class="keyword"> * </span><span class="type-var">'b</span></code></div><div class="doc"><p>Map on the right side of the tuple.</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>(***) : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> (<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'d</span>) <span class="keyword">‑></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></code></div><div class="doc"><p>Map on both sides of a tuple.</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>(&&&) : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></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></code></div><div class="doc"><p><code class="code">f &&& g</code> is <code class="code">fun x -> f x, g x</code>. It splits the computations into
|
||
two parts.</p></div></div><div class="spec val" id="val-merge"><a href="#val-merge" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>merge : (<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">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'c</span></code></div><div class="doc"><p>Uncurrying (merges the two components of a tuple).</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">'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">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'c</span></code></div><div class="doc"><p>Synonym to <a href="index.html#val-merge">merge</a>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.3.3</li></ul></div></div><div class="spec val" id="val-dup"><a href="#val-dup" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>dup : <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span></code></div><div class="doc"><p><code class="code">dup x = (x,x)</code> (duplicate the value).</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.3.3</li></ul></div></div><div class="spec val" id="val-dup_map"><a href="#val-dup_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>dup_map : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span></code></div><div class="doc"><p><code class="code">dup_map f x = (x, f x)</code>. Duplicates the value and applies the function
|
||
to the second copy.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.3.3</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> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> (<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></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">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">‑></span> bool</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> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> (<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> int) <span class="keyword">‑></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">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">‑></span> int</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">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> unit</code><code></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 : ?⁠sep:string <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-printer">printer</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-printer">printer</a> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-printer">printer</a></code></div><div class="doc"><p>Print a pair given an optional separator and a method for printing each of its elements.</p></div></div></body></html> |