Files
IBAFLang/IBAF-cbs/Funcons-beta/Computations/Abnormal/Continuing/index.md
2023-11-01 09:29:33 +01:00

7.1 KiB
Raw Blame History

layout, title, parent, ancestor
layout title parent ancestor
default Continuing Abnormal Funcons-beta

Funcons-beta : Continuing.cbs

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.

Funcon
  handle-continue(_:=>null-type) : =>null-type

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

From the PLanCompS Project | CBS-beta issues... | Suggest an improvement...