ocaml-containers/3.13/containers/CCPair/index.html
2023-12-05 15:53:19 -05:00

28 lines
No EOL
19 KiB
HTML
Raw Permalink 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>CCPair (containers.CCPair)</title><link rel="stylesheet" href="../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.2"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../odoc.support/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">containers</a> &#x00BB; CCPair</nav><header class="odoc-preamble"><h1>Module <code><span>CCPair</span></code></h1><p>Tuple Functions</p></header><div class="odoc-content"><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> <span>('a, 'b) t</span></span><span> = <span class="type-var">'a</span> * <span class="type-var">'b</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make"><a href="#val-make" class="anchor"></a><code><span><span class="keyword">val</span> make : <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Make a tuple from its components.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.16</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_fst"><a href="#val-map_fst" class="anchor"></a><code><span><span class="keyword">val</span> map_fst : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'c</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> * <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p><code>map_fst f (x, y)</code> returns <code>(f x, y)</code>. Renamed from <code>map1</code> since 3.0.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_snd"><a href="#val-map_snd" class="anchor"></a><code><span><span class="keyword">val</span> map_snd : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'c</span> * <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span> * <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>map_snd f (x, y)</code> returns <code>(x, f y)</code>. Renamed from <code>map2</code> since 3.0.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map"><a href="#val-map" class="anchor"></a><code><span><span class="keyword">val</span> map : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'d</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span> * <span class="type-var">'d</span></span></code></div><div class="spec-doc"><p>Synonym to <a href="#val-(***)"><code>(***)</code></a>. Map on both sides of a tuple.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_same"><a href="#val-map_same" class="anchor"></a><code><span><span class="keyword">val</span> map_same : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> * <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p>Like <a href="#val-map"><code>map</code></a> but specialized for pairs with elements of the same type.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map2"><a href="#val-map2" class="anchor"></a><code><span><span class="keyword">val</span> map2 :
<span><span>(<span><span class="type-var">'a1</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b1</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c1</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span class="type-var">'a2</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b2</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c2</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'a1</span> * <span class="type-var">'a2</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'b1</span> * <span class="type-var">'b2</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'c1</span> * <span class="type-var">'c2</span></span></code></div><div class="spec-doc"><p><code>map2 f g (a,b) (x,y)</code> return <code>(f a x, g b y)</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_same2"><a href="#val-map_same2" class="anchor"></a><code><span><span class="keyword">val</span> map_same2 : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'b</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span> * <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p><code>map_same2 f (a,b) (x,y)</code> return <code>(f a x, f b y)</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fst_map"><a href="#val-fst_map" class="anchor"></a><code><span><span class="keyword">val</span> fst_map : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">_</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p>Compose the given function with <code>fst</code>. Rename from <code>map_fst</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-snd_map"><a href="#val-snd_map" class="anchor"></a><code><span><span class="keyword">val</span> snd_map : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">_</span> * <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p>Compose the given function with <code>snd</code>. Rename from <code>map_snd</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3.3</li></ul></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><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-swap"><a href="#val-swap" class="anchor"></a><code><span><span class="keyword">val</span> swap : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> * <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Swap the components of the tuple.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-(&lt;&lt;&lt;)"><a href="#val-(&lt;&lt;&lt;)" class="anchor"></a><code><span><span class="keyword">val</span> (&lt;&lt;&lt;) : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'c</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> * <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p>Map on the left side of the tuple.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-(&gt;&gt;&gt;)"><a href="#val-(&gt;&gt;&gt;)" class="anchor"></a><code><span><span class="keyword">val</span> (&gt;&gt;&gt;) : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'c</span> * <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span> * <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p>Map on the right side of the tuple.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-(***)"><a href="#val-(***)" class="anchor"></a><code><span><span class="keyword">val</span> (***) : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'d</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span> * <span class="type-var">'d</span></span></code></div><div class="spec-doc"><p>Map on both sides of a tuple.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-(&amp;&amp;&amp;)"><a href="#val-(&amp;&amp;&amp;)" class="anchor"></a><code><span><span class="keyword">val</span> (&amp;&amp;&amp;) : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span>)</span> <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">'b</span> * <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p><code>f &amp;&amp;&amp; g</code> is <code>fun x -&gt; f x, g x</code>. It splits the computations into two parts.</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><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p>Uncurrying (merges the two components of a tuple).</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><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p>Synonym to <a href="#val-merge"><code>merge</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dup"><a href="#val-dup" class="anchor"></a><code><span><span class="keyword">val</span> dup : <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span> * <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>dup x = (x,x)</code> (duplicate the value).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dup_map"><a href="#val-dup_map" class="anchor"></a><code><span><span class="keyword">val</span> dup_map : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span>)</span> <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 class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>dup_map f x = (x, f x)</code>. Duplicates the value and applies the function to the second copy.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal :
<span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> bool)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span>
bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare :
<span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> int)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> int)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span>
int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string :
<span>?sep:string <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> string)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> string)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">&#45;&gt;</span></span>
string</span></code></div><div class="spec-doc"><p>Print tuple in a string</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.7</li></ul></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-printer"><a href="#type-printer" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a printer</span></span><span> = <span><span class="xref-unresolved">Stdlib</span>.Format.formatter <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp :
<span>?pp_start:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>?pp_stop:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>?pp_sep:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'b</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="#type-printer">printer</a></span></span></code></div><div class="spec-doc"><p>Print a pair given an optional separator, an optional start and stop and a method for printing each of its elements.</p></div></div></div></body></html>