Functional Actions

giveY | escape withY | regive | choose Y | check Y | A1 then A2

   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



    Functional Action Index | Functional Actions | Functional Yielders | Functional Data