Spec-Zone.ru › OCaml

Модуль Опция

module Option: sig .. end

Значения опций.

Значения опций явно указывают на наличие или отсутствие значения.

  • Since 4.08

Опции

type 'a t = 'a option = 
| None
| Some of 'a

Тип для значений опций. Либо 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API