mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-17 08:06:43 -05:00
2 lines
No EOL
12 KiB
HTML
2 lines
No EOL
12 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Option (ocaml.Stdlib.Option)</title><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><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">ocaml</a> » <a href="../index.html">Stdlib</a> » Option</nav><header class="odoc-preamble"><h1>Module <code><span>Stdlib.Option</span></code></h1><p>Option values.</p><p>Option values explicitly indicate the presence or absence of a value.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08</li></ul></header><nav class="odoc-toc"><ul><li><a href="#options">Options</a></li><li><a href="#preds">Predicates and comparisons</a></li><li><a href="#convert">Converting</a></li></ul></nav><div class="odoc-content"><h2 id="options"><a href="#options" class="anchor"></a>Options</h2><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 t</span></span><span> = <span><span class="type-var">'a</span> option</span></span><span> = </span></code><ol><li id="type-t.None" class="def variant constructor anchored"><a href="#type-t.None" class="anchor"></a><code><span>| </span><span><span class="constructor">None</span></span></code></li><li id="type-t.Some" class="def variant constructor anchored"><a href="#type-t.Some" class="anchor"></a><code><span>| </span><span><span class="constructor">Some</span> <span class="keyword">of</span> <span class="type-var">'a</span></span></code></li></ol></div><div class="spec-doc"><p>The type for option values. Either <code>None</code> or a value <code>Some v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-none"><a href="#val-none" class="anchor"></a><code><span><span class="keyword">val</span> none : <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>none</code> is <code>None</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-some"><a href="#val-some" class="anchor"></a><code><span><span class="keyword">val</span> some : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>some v</code> is <code>Some v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-value"><a href="#val-value" class="anchor"></a><code><span><span class="keyword">val</span> value : <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span>default:<span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>value o ~default</code> is <code>v</code> if <code>o</code> is <code>Some v</code> and <code>default</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get"><a href="#val-get" class="anchor"></a><code><span><span class="keyword">val</span> get : <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>get o</code> is <code>v</code> if <code>o</code> is <code>Some v</code> and raise otherwise.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if <code>o</code> is <code>None</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bind"><a href="#val-bind" class="anchor"></a><code><span><span class="keyword">val</span> bind : <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> option</span>)</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> option</span></span></code></div><div class="spec-doc"><p><code>bind o f</code> is <code>f v</code> if <code>o</code> is <code>Some v</code> and <code>None</code> if <code>o</code> is <code>None</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-join"><a href="#val-join" class="anchor"></a><code><span><span class="keyword">val</span> join : <span><span><span><span class="type-var">'a</span> option</span> option</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>join oo</code> is <code>Some v</code> if <code>oo</code> is <code>Some (Some v)</code> and <code>None</code> otherwise.</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">-></span></span> <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> option</span></span></code></div><div class="spec-doc"><p><code>map f o</code> is <code>None</code> if <code>o</code> is <code>None</code> and <code>Some (f v)</code> if <code>o</code> is <code>Some v</code>.</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>none:<span class="type-var">'a</span> <span class="arrow">-></span></span> <span>some:<span>(<span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'b</span> option</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>fold ~none ~some o</code> is <code>none</code> if <code>o</code> is <code>None</code> and <code>some v</code> if <code>o</code> is <code>Some v</code>.</p></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">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iter f o</code> is <code>f v</code> if <code>o</code> is <code>Some v</code> and <code>()</code> otherwise.</p></div></div><h2 id="preds"><a href="#preds" class="anchor"></a>Predicates and comparisons</h2><div class="odoc-spec"><div class="spec value anchored" id="val-is_none"><a href="#val-is_none" class="anchor"></a><code><span><span class="keyword">val</span> is_none : <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_none o</code> is <code>true</code> if and only if <code>o</code> is <code>None</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_some"><a href="#val-is_some" class="anchor"></a><code><span><span class="keyword">val</span> is_some : <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_some o</code> is <code>true</code> if and only if <code>o</code> is <code>Some o</code>.</p></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">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>equal eq o0 o1</code> is <code>true</code> if and only if <code>o0</code> and <code>o1</code> are both <code>None</code> or if they are <code>Some v0</code> and <code>Some v1</code> and <code>eq v0 v1</code> is <code>true</code>.</p></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">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> int)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>compare cmp o0 o1</code> is a total order on options using <code>cmp</code> to compare values wrapped by <code>Some _</code>. <code>None</code> is smaller than <code>Some _</code> values.</p></div></div><h2 id="convert"><a href="#convert" class="anchor"></a>Converting</h2><div class="odoc-spec"><div class="spec value anchored" id="val-to_result"><a href="#val-to_result" class="anchor"></a><code><span><span class="keyword">val</span> to_result : <span>none:<span class="type-var">'e</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../index.html#type-result">result</a></span></span></code></div><div class="spec-doc"><p><code>to_result ~none o</code> is <code>Ok v</code> if <code>o</code> is <code>Some v</code> and <code>Error none</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_list"><a href="#val-to_list" class="anchor"></a><code><span><span class="keyword">val</span> to_list : <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span></span></code></div><div class="spec-doc"><p><code>to_list o</code> is <code>[]</code> if <code>o</code> is <code>None</code> and <code>[v]</code> if <code>o</code> is <code>Some v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><code><span><span class="keyword">val</span> to_seq : <span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="../Seq/index.html#type-t">Seq.t</a></span></span></code></div><div class="spec-doc"><p><code>to_seq o</code> is <code>o</code> as a sequence. <code>None</code> is the empty sequence and <code>Some v</code> is the singleton sequence containing <code>v</code>.</p></div></div></div></body></html> |