mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
28 lines
No EOL
19 KiB
HTML
28 lines
No EOL
19 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="generator" content="odoc 2.1.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">containers</a> » 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" id="type-t" class="anchored"><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" id="val-make" class="anchored"><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">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></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" id="val-map_fst" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'c</span>)</span> <span class="arrow">-></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" id="val-map_snd" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'c</span> * <span class="type-var">'a</span>)</span> <span class="arrow">-></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" id="val-map" class="anchored"><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">-></span></span> <span class="type-var">'c</span> )</span> <span class="arrow">-></span></span> <span><span>( <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'d</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></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" id="val-map_same" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'a</span>)</span> <span class="arrow">-></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" id="val-map2" class="anchored"><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">-></span></span> <span><span class="type-var">'b1</span> <span class="arrow">-></span></span> <span class="type-var">'c1</span> )</span> <span class="arrow">-></span></span>
|
||
<span><span>( <span><span class="type-var">'a2</span> <span class="arrow">-></span></span> <span><span class="type-var">'b2</span> <span class="arrow">-></span></span> <span class="type-var">'c2</span> )</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a1</span> * <span class="type-var">'a2</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'b1</span> * <span class="type-var">'b2</span>)</span> <span class="arrow">-></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" id="val-map_same2" class="anchored"><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">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'c</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'b</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></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" id="val-fst_map" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">_</span>)</span> <span class="arrow">-></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" id="val-snd_map" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">_</span> * <span class="type-var">'a</span>)</span> <span class="arrow">-></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" id="val-iter" class="anchored"><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">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> unit )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-swap" class="anchored"><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">-></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" id="val-(<<<)" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'c</span>)</span> <span class="arrow">-></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" id="val-(>>>)" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'c</span> * <span class="type-var">'a</span>)</span> <span class="arrow">-></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" id="val-(***)" class="anchored"><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">-></span></span> <span class="type-var">'c</span> )</span> <span class="arrow">-></span></span> <span><span>( <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'d</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></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" id="val-(&&&)" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span>( <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'c</span> )</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'b</span> * <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p><code>f &&& g</code> is <code>fun x -> f x, g x</code>. It splits the computations into two parts.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-merge" class="anchored"><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">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'c</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></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" id="val-fold" class="anchored"><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">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'c</span> )</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></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" id="val-dup" class="anchored"><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">-></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" id="val-dup_map" class="anchored"><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">-></span></span> <span class="type-var">'b</span> )</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></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" id="val-equal" class="anchored"><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">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span>
|
||
<span><span>( <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span>
|
||
bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-compare" class="anchored"><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">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> int )</span> <span class="arrow">-></span></span>
|
||
<span><span>( <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> int )</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span>
|
||
int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-to_string" class="anchored"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string :
|
||
<span>?sep:string <span class="arrow">-></span></span>
|
||
<span><span>( <span><span class="type-var">'a</span> <span class="arrow">-></span></span> string )</span> <span class="arrow">-></span></span>
|
||
<span><span>( <span><span class="type-var">'b</span> <span class="arrow">-></span></span> string )</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <span class="arrow">-></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" id="type-printer" class="anchored"><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">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><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">-></span></span>
|
||
<span>?pp_stop:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">-></span></span>
|
||
<span>?pp_sep:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'b</span> <a href="#type-printer">printer</a></span> <span class="arrow">-></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> |