The Escher faculty provides access to linguistic primitives from within program circuits.
Every running Escher circuit program has been materialized relative to an index.
The index reflex, escher.Index
, is a noun reflex that emits the index relative to which
the current circuit has been materialized.
The following program, for instance, will print out the index used to materialize the invoking circuit program:
{ *Show = *escher.Index }
The materialize reflex, named escher.Materialize
,
materializes a program circuit relative to an index of faculties.
The reflex requires that two valves, :View
and :Residue
, be connected.
Values sent to :View
must be circuits containing gates named Index
and Program
.
The value of the Program
gate must be a circuit program (or any
gate value allowed within a circuit program). Whereas the value of the
Index
gate should hold the index, relative to which the program will be materialized.
When a value is received at :View
, the materialize reflex will materialize the
program relative to the given index and will return the residue to the valve :Residue
.
Consider the following example program:
{ m *escher.Materialize f *Fork m:View = f: f:Program = { *Show = "Hello from the child circuit program." } f:Index = *escher.Index m:Residue = *Show }
This program will materialize the child program
{ *Show = "Hello from the child circuit program." }
using the same index that was used to materialize the parent program, as acquired from
the *escher.Index
reflex in the parent program.