ocaml-containers/2.2/containers/CCPair/index.html
2018-05-10 23:14:25 -05:00

4 lines
No EOL
14 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>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> &mdash; <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">&#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">'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">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'c</span><span class="keyword"> * </span><span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'d</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">_</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">_</span><span class="keyword"> * </span><span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</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-(&lt;&lt;&lt;)"><a href="#val-(&lt;&lt;&lt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&lt;&lt;&lt;) : (<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="keyword"> * </span><span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</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-(&gt;&gt;&gt;)"><a href="#val-(&gt;&gt;&gt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&gt;&gt;&gt;) : (<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">'c</span><span class="keyword"> * </span><span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'d</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</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-(&amp;&amp;&amp;)"><a href="#val-(&amp;&amp;&amp;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&amp;&amp;&amp;) : (<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="keyword">&#8209;&gt;</span> <span class="type-var">'c</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"> * </span><span class="type-var">'c</span></code></div><div class="doc"><p><code class="code">f &amp;&amp;&amp; g</code> is <code class="code">fun x -&gt; 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">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</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">&#8209;&gt;</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">&#8209;&gt;</span> <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">'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">&#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">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</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">&#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">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</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">&#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-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : ?&#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">'b</span> <a href="index.html#type-printer">printer</a> <span class="keyword">&#8209;&gt;</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>