Модуль Опция
module Option: sig .. end
Значения опций.
Значения опций явно указывают на наличие или отсутствие значения.
- Since 4.08
Опции
type 'a t = 'a option =
|
| None
|
|
| Some of
|
Тип для значений опций. Либо None или значение Some v.
val none : 'a option
none является None.
val some : 'a -> 'a option
some v является Some v.
val value : 'a option -> default:'a -> 'a
value o ~default является v если o равно Some v, и default в противном случае.
val get : 'a option -> 'a
get o является v если o равно Some v, и вызывает исключение в противном случае.
-
Raises
Invalid_argumentеслиoравноNone.
val bind : 'a option -> ('a -> 'b option) -> 'b option
bind o f является f v если o равно Some v, и None если o равно None.
val join : 'a option option -> 'a option
join oo является Some v если oo равно Some (Some v), и None в противном случае.
val map : ('a -> 'b) -> 'a option -> 'b option
map f o является None если o равно None, и Some (f v) если o равно Some v.
val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
fold ~none ~some o является none если o равно None, и some v если o равно Some v.
val iter : ('a -> unit) -> 'a option -> unit
iter f o является f v если o равно Some v, и () в противном случае.
Предикаты и сравнения
val is_none : 'a option -> bool
is_none o является true тогда и только тогда, когда o равно None.
val is_some : 'a option -> bool
is_some o является true тогда и только тогда, когда o равно Some o.
val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
equal eq o0 o1 является true тогда и только тогда, когда o0 и o1 оба равны None, или если они равны Some v0, Some v1, и eq v0 v1 равно true.
val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
compare cmp o0 o1 является полным порядком опций, используя cmp для сравнения значений, заключённых в Some _. Значения None меньше значений Some _.
Преобразование
val to_result : none:'e -> 'a option -> ('a, 'e) result
to_result ~none o является Ok v если o равно Some v, и Error none в противном случае.
val to_list : 'a option -> 'a list
to_list o является [] если o равно None, и [v] если o равно Some v.
val to_seq : 'a option -> 'a Seq.t
to_seq o является o в виде последовательности. None — пустая последовательность, а Some v — последовательность из одного элемента v.
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/libref/Option.html