package batteries
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=1bcb27dfbd130eb057561196ef851649
sha512=2a56611b09a5f1cba6457539f8b6bc87a5f2a5454b36cdb39f6e0d6a5dac6db179aab1ba87c74dd49cc41df31a9a96feb349028ea41df7371ecb47f4d9dfafc4
doc/batteries.unthreaded/BatOption/index.html
Module BatOption
Functions for the option type.
Options are an Ocaml standard type that can be either None (undefined) or Some x where x can be any value. Options are widely used in Ocaml to represent undefined values (a little like NULL in C, but in a type and memory safe way). This module adds some functions for working with options.
map f (Some x) returns Some (f x) and map f None returns None.
bind (Some x) f returns f x and bind None f returns None.
@example "Our functions return option types. Compose them to propagate None."
let pick_long case =
try
Some (List.find (fun data -> List.length data > 1000) case)
with Not_found -> None
let last_null data = List.rindex_of 0 data
let interesting_positions dataset =
List.filter_map
(fun case -> Option.bind last_null (pick_long case))
datasetfilter f None returns None, filter f (Some x) returns Some x if f x is true, and None otherwise.
Like default, with the arguments reversed. None |? 10 returns 10, while Some "foo" |? "bar" returns "foo".
Note This operator does not short circuit like ( || ) and ( && ). Both arguments will be evaluated.
Like default, but the default value is passed as a thunk that is only computed if needed.
map_default f x (Some v) returns f v and map_default f x None returns x.
Like map_default, but the default value is passed as a thunk that is only computed if needed.
Compare two options, possibly using custom comparators for the value. None is always assumed to be less than Some _. The parameter cmp defaults to Pervasives.compare.
Test for equality between option types, possibly using a custom equality predicate. The parameter eq defaults to Pervasives.(=).
val enum : 'a option -> 'a BatEnum.tenum (Some x) returns the singleton x, while enum None returns the empty enumeration.
val of_enum : 'a BatEnum.t -> 'a optionof_enum e consumes the first element of e, if it exists, and returns Some e. If e is empty, return None.
The Option Monad
module Monad : sig ... endThis module provides everything needed to write and execute computations in the Option monad.
Boilerplate code
val ord : 'a BatOrd.ord -> 'a option BatOrd.ordComparison between optional values
Printing
val print :
('a BatInnerIO.output -> 'b -> unit) ->
'a BatInnerIO.output ->
'b t ->
unitmodule Labels : sig ... endOperations on options, with labels.
module Infix : sig ... end