Spec-Zone.ru › OCaml 5.0

Модуль 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 : 'a -> 'b;
exnc : exn -> 'b;
effc : 'c. 'c Effect.t -> (('c, 'a) continuation -> 'b) option;
}

('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-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/libref/Effect.Shallow.html

Spec-Zone.ru

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