Direction
The direction of data is the direction of the references that a construct permits. Three shapes cover the languages that coeval serves.
The glyphs so far: 15, 3 new on this page
- 42Data: a value without a type
- numberA document: the tab is its type42
- numberA dashed tab: the container declares the type42
- addParts: a card inside a cardnumber1number2
- kindA kind: a document of type kind
- OKDA rung: own, kind or default
- 3A port: the result of a document
- 0A sealed part: an evaluator cannot read it
- #NAME?An error value, in a red port
- numberaA name tag: a binding for later steps3
- refA reference: a path from a root of the contextnamesa
- ifNot evaluated: a part that its parent did not need“yes”testbooltruetruethentext“yes”“yes”elsetext“no”not evaluated
- ▸logThe run side: a magenta edge, and an effectnew“hi”text“hi”“hi”
- 1log“hi”An effect: a numbered ticket in the worldnew
- logA capability: an effect that a term can causenew
- 1adda3number11number22
- 2multiplyb#VALUE!refno path#VALUE!number1010
- 3▸lognot evaluatedrefno pathnot evaluated
- 4addcnot evaluatedrefno pathnot evaluatedrefno pathnot evaluated
What step 4 can name
It can name a, b. No named step comes after it.
Back, in a sequence
Section titled “Back, in a sequence”A step of a sequence can name each earlier step. It cannot name a later step. This is the scope of let*: each binding sees the bindings before it.
Moves, from a focus
Section titled “Moves, from a focus”A formula over a structure reads by position. It starts at a focus and moves: to the parent, to the children, to the siblings or to all of the others. A spreadsheet reads cells in the same way.
Down, up and sideways, in a tree
Section titled “Down, up and sideways, in a tree”In a tree of components, data and the box of a parent go down. The size of a child and its events go up. A reference goes sideways, to another branch. The theory of attribute grammars names these inherited, synthesized and reference attributes.
One path grammar
Section titled “One path grammar”A name is also a position. A variable is a path up the program to the place of its binding. The previous step is a path to the sibling before. Thus one grammar of paths can name all three shapes. A path is a list of moves from the place of the reference.