Module CCOpt
Options
val map_or : default:'b -> ('a -> 'b) -> 'a t -> 'b
map_or ~default f o
isf x
ifo = Some x
,default
otherwise.- since
- 0.16
val map_lazy : (unit -> 'b) -> ('a -> 'b) -> 'a t -> 'b
map_lazy default_fn f o
iff o
ifo = Some x
,default_fn ()
otherwise.- since
- 1.2
val is_some : _ t -> bool
is_some (Some x)
returnstrue
otherwise it returnsfalse
.
val is_none : _ t -> bool
is_none None
returnstrue
otherwise it returnsfalse
.- since
- 0.11
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
Compare two options, using custom comparators for the value.
None
is always assumed to be less thanSome _
.
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
Test for equality between option types using a custom equality predicat.
val return : 'a -> 'a t
Monadic return, that is
return x = Some x
.
val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
map2 f o1 o2
maps'a option
and'b option
to a'c option
usingf
.
val iter : ('a -> unit) -> 'a t -> unit
Iterate on 0 or 1 element.
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
Fold on 0 or 1 element.
val exists : ('a -> bool) -> 'a t -> bool
Return
true
iff there exists an element for which the provided function evaluates totrue
.- since
- 0.17
val for_all : ('a -> bool) -> 'a t -> bool
Return
true
iff the provided function evaluates totrue
for all elements.- since
- 0.17
val get_or : default:'a -> 'a t -> 'a
get_or ~default o
extracts the value fromo
, or returnsdefault
ifo = None
.- since
- 0.18
val get_exn : 'a t -> 'a
Open the option, possibly failing if it is
None
.- raises Invalid_argument
if the option is
None
.
val get_lazy : (unit -> 'a) -> 'a t -> 'a
get_lazy default_fn x
unwrapsx
, but ifx = None
it returnsdefault_fn ()
instead.- since
- 0.6.1
val sequence_l : 'a t list -> 'a list t
sequence_l [x1; x2; ...; xn]
returnsSome [y1;y2;...;yn]
if everyxi
isSome yi
. Otherwise, if the list contains at least oneNone
, the result isNone
.
val wrap : ?handler:(exn -> bool) -> ('a -> 'b) -> 'a -> 'b option
wrap f x
callsf x
and returnsSome y
iff x = y
. Iff x
raises any exception, the result isNone
. This can be useful to wrap functions such asMap.S.find
.- parameter handler
the exception handler, which returns
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 towrap
but for binary functions.
Applicative
Alternatives
val or_lazy : else_:(unit -> 'a t) -> 'a t -> 'a t
or_lazy ~else_ a
isa
ifa
isSome _
,else_ ()
otherwise.- since
- 1.2
val return_if : bool -> 'a -> 'a t
Apply
Some
orNone
depending on a boolean. More precisely,return_if false x
isNone
, andreturn_if true x
isSome x
.- since
- 2.2
Infix Operators
- since
- 0.16
module Infix : sig ... end
Conversion and IO
val to_result : 'e -> 'a t -> ('a, 'e) Result.result
- since
- 1.2
val to_result_lazy : (unit -> 'e) -> 'a t -> ('a, 'e) Result.result
- since
- 1.2
val of_result : ('a, _) Result.result -> 'a t
- since
- 1.2
type 'a sequence
= ('a -> unit) -> unit
type 'a gen
= unit -> 'a option
type 'a printer
= Stdlib.Format.formatter -> 'a -> unit
type 'a random_gen
= Stdlib.Random.State.t -> 'a
val random : 'a random_gen -> 'a t random_gen
val choice_seq : 'a t sequence -> 'a t
choice_seq s
is similar tochoice
, but works on sequences. It returns the firstSome x
occurring ins
, orNone
otherwise.- since
- 0.13