val map_or : default:'b ‑> ('a ‑> 'b) ‑> 'a t ‑> 'b
map_or ~default f o
is f x
if o = Some x
, default
otherwise.
val map_lazy : (unit ‑> 'b) ‑> ('a ‑> 'b) ‑> 'a t ‑> 'b
map_lazy default_fn f o
if f o
if o = Some x
, default_fn ()
otherwise.
Compare two options, using custom comparators for the value.
None
is always assumed to be less than Some _
.
val exists : ('a ‑> bool) ‑> 'a t ‑> bool
Return true
iff there exists an element for which the provided function evaluates to true
.
val for_all : ('a ‑> bool) ‑> 'a t ‑> bool
Return true
iff the provided function evaluates to true
for all elements.
val get_or : default:'a ‑> 'a t ‑> 'a
get_or ~default o
extracts the value from o
, or
returns default
if o = None
.
val get_exn : 'a t ‑> 'a
Open the option, possibly failing if it is None
.
None
.val get_lazy : (unit ‑> 'a) ‑> 'a t ‑> 'a
get_lazy default_fn x
unwraps x
, but if x = None
it returns default_fn ()
instead.
sequence_l [x1; x2; ...; xn]
returns Some [y1;y2;...;yn]
if
every xi
is Some yi
. Otherwise, if the list contains at least
one None
, the result is None
.
val wrap : ?handler:(exn ‑> bool) ‑> ('a ‑> 'b) ‑> 'a ‑> 'b option
wrap f x
calls f x
and returns Some y
if f x = y
. If f x
raises
any exception, the result is None
. This can be useful to wrap functions
such as Map.S.find
.
true
if the
exception is to be caught.val wrap2 : ?handler:(exn ‑> bool) ‑> ('a ‑> 'b ‑> 'c) ‑> 'a ‑> 'b ‑> 'c option
wrap2 f x y
is similar to wrap but for binary functions.
val return_if : bool ‑> 'a ‑> 'a t
Apply Some
or None
depending on a boolean.
More precisely, return_if false x
is None
,
and return_if true x
is Some x
.
module Infix : sig ... end
val to_list : 'a t ‑> 'a list
val random : 'a random_gen ‑> 'a t random_gen
choice_seq s
is similar to choice, but works on sequences.
It returns the first Some x
occurring in s
, or None
otherwise.