Модуль Effect.Shallow
module Shallow: sig .. end
type ('a, 'b) continuation ('a,'b) continuation — это ограниченная цепочка продолжения, которая ожидает значение 'a и возвращает значение 'b.
val fiber : ('a -> 'b) -> ('a, 'b) continuation
fiber f создаёт цепочку продолжения, которая выполняет вычисление f.
type ('a, 'b) handler = {
retc :
| |
exnc :
| |
effc :
|
} ('a,'b) handler — это запись обработчика с тремя полями: retc — обработчик значений, exnc обрабатывает исключения, и effc обрабатывает эффекты, выполненные вычислением, заключённым в обработчик.
val continue_with : ('c, 'a) continuation -> 'c -> ('a, 'b) handler -> 'b
continue_with k v h возобновляет цепочку продолжения k со значением v с обработчиком h.
-
Возбуждает
Continuation_already_resumedесли цепочка продолжения уже возобновлена.
val discontinue_with : ('c, 'a) continuation -> exn -> ('a, 'b) handler -> 'b
discontinue_with k e h возобновляет цепочку продолжения k путём возбуждения исключения e с обработчиком h.
-
Возбуждает
Continuation_already_resumedесли цепочка продолжения уже возобновлена.
val discontinue_with_backtrace : ('a, 'b) continuation -> exn -> Printexc.raw_backtrace -> ('b, 'c) handler -> 'c
discontinue_with k e bt h возобновляет цепочку продолжения k путём возбуждения исключения e с обработчиком h используя исходный стек вызовов bt в качестве источника исключения.
-
Возбуждает
Continuation_already_resumedесли цепочка продолжения уже возобновлена.
val get_callstack : ('a, 'b) continuation -> int -> Printexc.raw_backtrace
get_callstack c n возвращает описание вершины стека вызовов в цепочке продолжения c, с максимальным количеством n элементов.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/Effect.Shallow.html