mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
15 lines
No EOL
8.5 KiB
HTML
15 lines
No EOL
8.5 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCOrd (containers.CCOrd)</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">CCOrd</span></h1></header><h2>Comparisons</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 t</code><code><span class="keyword"> = </span><span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int</code><code></code></div><div class="doc"><p>Comparison (total ordering) between two elements, that returns an int.</p></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-t">t</a></code></div><div class="doc"><p>Polymorphic "magic" comparison.</p></div></div><div class="spec val" id="val-opp"><a href="#val-opp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>opp : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Opposite order.</p></div></div><div class="spec val" id="val-equiv"><a href="#val-equiv" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equiv : int <span class="keyword">‑></span> int <span class="keyword">‑></span> bool</code></div><div class="doc"><p>Returns <code class="code">true</code> iff the two comparison results are the same.</p></div></div><div class="spec val" id="val-int"><a href="#val-int" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>int : int <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-string"><a href="#val-string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>string : string <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-bool"><a href="#val-bool" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>bool : bool <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-float"><a href="#val-float" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>float : float <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><h3>Lexicographic Combination</h3><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">‑></span> (<span class="type-var">'a</span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span>) <span class="keyword">‑></span> int</code></div><div class="doc"><p><code class="code">c1 <?> (ord, x, y)</code> returns the same as <code class="code">c1</code> if <code class="code">c1</code> is not <code class="code">0</code>;
|
|
otherwise it uses <code class="code">ord</code> to compare the two values <code class="code">x</code> and <code class="code">y</code>,
|
|
of type <code class="code">'a</code>.</p><p>Example:
|
|
</p><pre><code class="code">CCInt.compare 1 3
|
|
<?> (String.compare, "a", "b")
|
|
<?> (CCBool.compare, true, false)</code></pre><p>Same example, using only CCOrd::
|
|
</p><pre><code class="code">CCOrd.(int 1 3
|
|
<?> (string, "a", "b")
|
|
<?> (bool, true, false))</code></pre></div></div><div class="spec val" id="val-option"><a href="#val-option" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>option : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> option <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Comparison of optional values. <code class="code">None</code> is smaller than any <code class="code">Some _</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.15</li></ul></div></div><div class="spec val" id="val-pair"><a href="#val-pair" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pair : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</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-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-triple"><a href="#val-triple" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>triple : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a> <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>) <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-list"><a href="#val-list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>list : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> list <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Lexicographic combination on lists.</p></div></div><div class="spec val" id="val-array"><a href="#val-array" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>array : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> array <a href="index.html#type-t">t</a></code></div><div class="doc"></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">'b</span>) <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">map f ord</code> is the comparison function that, given objects <code class="code">x</code> and <code class="code">y</code>,
|
|
projects <code class="code">x</code> and <code class="code">y</code> using <code class="code">f</code> (e.g. using a record field) and then
|
|
compares those projections with <code class="code">ord</code>.
|
|
Example:
|
|
<code class="code">map fst CCInt.compare</code> compares values of type <code class="code">(int * 'a)</code> by their
|
|
first component.</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">'b</span> <a href="index.html#type-t">t</a> <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> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix equivalent of <a href="index.html#val-map">map</a>.</p></div></div><div class="spec module" id="module-Infix"><a href="#module-Infix" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Infix/index.html">Infix</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div></body></html> |