A notebook cell
Edit the In line; the Out line re-evaluates.
<notatio-cell> — a notebook-style In/Out pair: an editable input with its evaluated output beneath, each labelled. The summary line sits above the cell.
value is Epsil by default -- format names the syntax it's written in (epsil, latex, mathjson or wolfram). in-form picks the editor: standard (the MathLive field, the default), or a plain text field in input (InputForm), full (the MathJSON AST), wolfram (Wolfram source) or tex (LaTeX) -- each parsed back on Enter or blur. Click the In label to switch editors or copy the value out.
Cell is a symbol too: Cell(expr) holds expr unevaluated and draws as this element, so a cell can be written in Epsil anywhere an expression goes. Options, Wolfram's way, as trailing rules: InForm and OutForm name the forms (InputForm, TraditionalForm, …) and Expected is the value the Out should come to.
InputForm edits as text; the Out is checked against Expected (edit it and the check drops).
A list of cells, laid out -- each evaluates on its own, with no shared state yet.
The In here is Cell(1 + 1); its value is itself, drawn.
The In is source and stays as written; the Out reduces for where it lands, so printing the page samples the slider (env="print" shows it here) rather than drawing one that cannot move.
DynamicModule([Cell(...), Cell(...), ...]) — a List of Cells — shares one evaluation scope across its cells, evaluated in document order: a binding one cell makes is visible to the next (unlike "Cells in a column" above, where each cell is on its own). Wolfram's $Line transcript: editing a cell re-evaluates that cell in the shared scope, but a later cell does not auto-follow — re-run it yourself to see the new binding. Notebook(cells) is Wolfram's own name for the same configuration.
The first cell binds a; the second reads it. Change the 5, then edit the second cell to re-run it -- a transcript does not re-run later cells on its own.
Every evaluation gets a line number, shown as the In/Out label. Out(n) reads a prior line's result back; In(n) re-evaluates that line's input against the CURRENT scope; InString(n) is its literal text.
TrackedSymbols -- Wolfram's own option name -- turns a DynamicModule from a transcript into a reactive module: All (or Automatic, or True) tracks every symbol a cell assigns; a list of symbols tracks only those. Order stops mattering -- Cell(b := a + 1) before Cell(a := 5) is fine, since the graph is built from what each cell assigns and reads, not from where it sits. Two cells assigning the same name is an error on both (never last-writer-wins), a cycle is an error on every cell in it, and a cell-number reference (Out(n), %) is rejected outright -- position means nothing once cells can be understood in any order.
Labels drop the [n] here too -- In/Out, not In[n]/Out[n]: a reactive module's cells can be read in any order, so a position-keyed label would be misleading, and it is exactly what the ordinal-reference rejection above is about.
The middle cell reads a, defined by the cell after it -- and gets the right answer on load, not just after an edit.
Change the 5 in the middle cell and commit (Enter or blur) -- the first and third cells update on their own, without being touched.
Both cells assign a -- a reactive module rejects that as ambiguous rather than picking a winner (shown here as a dashed outline on each; hover for the message).
Evaluator -> "Worker" -- Wolfram's own option name for Dynamic's kernel choice -- runs a DynamicModule's cells off this page's own thread, in an @enumeratio/evaluation/browser session: one worker holding the module's bindings, so a := 5 then a^2 still read each other back, just not on the thread that has to keep the page responsive. A cell shows the usual pending dots while its call is out, plus a stop control (or Escape) that aborts it.
The second cell adds up two million terms one at a time -- several seconds of real work, off this thread. Scroll or click elsewhere while it runs: the page keeps responding. Stop it with the ■ button or Escape.