moonpool/dev/ocaml/Stdlib/Option/index.html

2 lines
No EOL
12 KiB
HTML
Raw 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>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> &#x00BB; <a href="../index.html">Stdlib</a> &#x00BB; 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">&#45;&gt;</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">&#45;&gt;</span></span> <span>default:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</span></span> <span><span>(<span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> option</span>)</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</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">&#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> option</span> <span class="arrow">&#45;&gt;</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> is <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">&#45;&gt;</span></span> <span>some:<span>(<span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'b</span> option</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#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 class="type-var">'a</span> option</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">&#45;&gt;</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">&#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 class="type-var">'a</span> option</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> option</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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>