All primitive functional actions:
- Do not commit.
- Produce no bindings.
- Make no changes to storage.
- Do not communicate.
- Redirect no bindings.
All functional action combinators are:
- Declaratively conducting
(see the basic action A1 and
A2).
give Y: a primitive functional action, where Y is a data yielder.
Represents creating a piece of transient information.
- Indivisible. Completes when Y yields data. Fails
when Y yields nothing.
- Gives the data yielded by Y.
Example
escape with Y: a primitive functional action, where Y is a data yielder.
Represents escaping with a piece of transient information, which may be used
to distinguish different reasons for escape.
- Indivisible. Escapes when Y yields data. Fails
when Y yields nothing.
- Gives the data yielded by Y.
Example
regive: a primitive functional action. Represents propagation of transient
information, i.e., data. Unit for A1 then A2.
- Indivisible. Always completes.
- Gives any given data.
Example
choose Y: a functional action, where Y is a data yielder.
Represents implementation-dependent choice between a possibly infinite
collection of individual items of data.
- Indivisible. Completes when Y yields a
sort including a data individual. Fails when Y yields
nothing.
- Gives any individual data of the sort yielded by
Y.
OBS:This action is not implemented by the action interpreter.
check Y: a functional action, where Y is a truth-value yielder.
Represents a guard checking that a condition is true.
- Indivisible. Completes when Y yields true. Fails
when Y yields false (or nothing).
- Gives no data.
Example
A1 then A2: a functional combination of actions
A1
, A2.
Represents passing on transient information normally.
- Basically sequencing (see the
basic action
A1 and then A2 ). Functional
ly composing: The transients given to the combination
of A1, A2 are given to A1. Only the transients given
by A1 are given to A2 (provided that
A2 is performed).
Only the transients given by A2 are given by the combined action.
Example
|