Declarative Actions

bind T to Y | unbind T | rebind | produce Y | furthermore A | A1 moreover A2 | A1 hence A2 | A1 before A2

   All primitive declarative actions:

  • Do not commit.
  • Give no transients.
  • Make no changes to storage.
  • Do not communicate.
  • Redirect no bindings.
   All declarative action combinators are:

  • Functionally conducting (see the basic action A1 and A2).
    bind T to Y: a primitive declarative action, where T is a token and Y is a yielder of bindable data. Represents creating a piece of scoped information.

  • Indivisible. Completes when Y yields data of sort bindable. Fails otherwise.
  • Produces the binding of the token T to the bindable data.
   Example

    
unbind T: a primitive declarative action, where T is a token. Represents hiding a piece of scoped information, making a hole in its scope.

  • Indivisible. Completes.
  • Produces the binding of the token T to the datum unknown.
   OBS:This action is not implemented by the action interpreter.

    
rebind: a primitive declarative action. Represents propagation of scoped information. Unit for the declarative action A1 hence A2.
  • Indivisible. Always completes.
  • Produces all received bindings.
   Example

    
produce Y: a primitive declarative action. Represents production of reified scoped information.

  • Indivisible. Completes when Y yields a datum of sort bindings.
  • Produces the bindings yielded by Y.
   OBS:This action is not implemented by the action interpreter.

    
furthermore A: a declarative combination of the action A. Represents propagating the received bindings, but letting bindings produced by A take precedence when there is a conflict.
  • Basically as A.
  • Functionally as A.
  • Declaratively as rebind moreover A.
   Example

    
A1 moreover A2: a declarative combination of actions A1 , A2. Like A1 and A2, but gives priority to bindings produced by A2.
  • Basically interleaving (see the basic action A1 and A2).
  • Declaratively overlaying: The bindings received by the combination of A1 , A2 are received by both A1 , A2. On normal termination the bindings produced by A1, overlaid with those produced by A2, are produced by the combined action.
   Example

    
A1 hence A2: a declarative combination of actions A1 , A2. Represents passing on scoped information, restricting the bindings received by A2.

  • Basically sequencing (see the basic action A1 and then A2).
  • Declaratively composing: The bindings received by the combination of A1 , A2 are received by A1. Only the bindings produced by A1 are received by A2 (provided that it is performed). Only the bindings produced by A2 are produced by the combined action.
   Example

    
A1 before A2: a declarative combination of actions A1 , A2. Represents accumulating scoped information.

  • Basically sequencing (see the basic action A1 and then A2).
  • Declaratively accumulating: The bindings received by the combination of A1 , A2 are received by A1. The bindings received by the combined action, overlaid with the bindings produced by A1, are received by A2 (provided that it is performed). On normal termination the bindings produced by A1, overlaid with those produced by A2, are produced by the combined action.
   Example



    Declarative Action Index | Declarative Actions | Declarative Yielders | Declarative Data