Spec-Zone.ru › OCaml

Модуль 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-2026 INRIA.
https://ocaml.org/manual/5.5/api/Effect.Shallow.html

Spec-Zone.ru

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