Funcons-beta : Continuing.cbs | PRETTY | PDF
Continuing
[
Datatype continuing
Funcon continued
Funcon finalise-continuing
Funcon continue
Funcon handle-continue
]
Meta-variables
T <: values
Datatype
continuing ::= continued
continued
is a reason for abrupt termination.
Funcon
finalise-continuing(X:=>T) : =>T|null-type
~> finalise-abrupting(X)
finalise-continuing(X)
handles abrupt termination of X
due to executing
continue
.
Funcon
continue : =>empty-type
~> abrupt(continued)
continue
abruptly terminates all enclosing computations until it is handled.
handle-continue(X)
terminates normally when X
terminates abruptly for the
reason continued
.
Rule
X --abrupted( )-> X′
------------------------------------------------------
handle-continue(X) --abrupted( )-> handle-continue(X′)
Rule
X --abrupted(continued)-> _
--------------------------------------------
handle-continue(X) --abrupted( )-> null-value
Rule
X --abrupted(V:~continuing)-> X′
------------------------------------------------------
handle-continue(X) --abrupted(V)-> handle-continue(X′)
Rule
handle-continue(null-value) ~> null-value