Модуль Опция
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 — это последовательность. None — пустая последовательность, а Some v — последовательность, содержащая только v.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/Option.html