Модуль Результат
module Result: sig .. end
Значения результатов.
Значения результатов обрабатывают результаты вычислений и ошибки явным и декларативным образом без использования исключений.
- С тех пор 4.08
Результаты
type ('a, 'e) t = ('a, 'e) result =
|
| Ok of
|
|
| Error of
|
Тип для значений результатов. Либо значение Ok v , либо ошибка Error e.
val ok : 'a -> ('a, 'e) result
ok v является Ok v.
val error : 'e -> ('a, 'e) result
error e является Error e.
val value : ('a, 'e) result -> default:'a -> 'a
value r ~default является v если r является Ok v и default в противном случае.
val get_ok : ('a, 'e) result -> 'a
get_ok r является v если r является Ok v и генерирует исключение в противном случае.
-
Возбуждает
Invalid_argumentеслиrявляетсяError _.
val get_error : ('a, 'e) result -> 'e
get_error r является e если r является Error e и генерирует исключение в противном случае.
-
Возбуждает
Invalid_argumentеслиrявляетсяOk _.
val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
bind r f является f v если r является Ok v и r если r является Error _.
val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
join rr является r если rr является Ok r и rr если rr является Error _.
val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
map f r является Ok (f v) если r является Ok v и r если r является Error _.
val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
map_error f r является Error (f e) если r является Error e и r если r является Ok _.
val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
fold ~ok ~error r является ok v если r является Ok v и error e если r является Error e.
val iter : ('a -> unit) -> ('a, 'e) result -> unit
iter f r является f v если r является Ok v и () в противном случае.
val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
iter_error f r является f e если r является Error e и () в противном случае.
Предикаты и сравнения
val is_ok : ('a, 'e) result -> bool
is_ok r является true тогда и только тогда, когда r является Ok _.
val is_error : ('a, 'e) result -> bool
is_error r является true тогда и только тогда, когда r является Error _.
val equal : ok:('a -> 'a -> bool) -> error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
equal ~ok ~error r0 r1 проверяет равенство r0 и r1 с использованием ok и error для сравнения значений, заключенных в Ok _ и Error _ соответственно.
val compare : ok:('a -> 'a -> int) -> error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
compare ~ok ~error r0 r1 полностью упорядочивает r0 и r1 с использованием ok и error для сравнения значений, заключенных в Ok _ и Error _ соответственно. Ok _ значения меньше значений Error _.
Преобразование
val to_option : ('a, 'e) result -> 'a option
to_option r является r в качестве опции, отображая Ok v на Some v и Error _ на None.
val to_list : ('a, 'e) result -> 'a list
to_list r является [v] если r является Ok v и [] в противном случае.
val to_seq : ('a, 'e) result -> 'a Seq.t
to_seq r является r как последовательность. Ok v - это последовательность-одиночка, содержащая v, а Error _ - это пустая последовательность.
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Result.html