Skip to content

Cell ​

<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.

A notebook cell

Edit the In line; the Out line re-evaluates.

In12+13\frac{1}{2}+\frac{1}{3}Out56\frac{5}{6}
source · editable

Symbolic input

In∑k=1nk\sum_{k=1}^{n}kOut∑k=1nk\sum_{k=1}^{n}k
source · editable

As an expression ​

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.

A cell, written as an expression

source · editable

Options

InputForm edits as text; the Out is checked against Expected (edit it and the check drops).

source · editable

Cells in a column

A list of cells, laid out -- each evaluates on its own, with no shared state yet.

source · editable

A cell that evaluates to a cell

The In here is Cell(1 + 1); its value is itself, drawn.

InCell(1+1)\mathrm{Cell}(1+1)OutCell(1+1)\mathrm{Cell}(1+1)
source · editable

A control in a cell

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.

InRow([Slider((k,2),(0,5)),Dynamic(k2)])\mathrm{Row}(\bigl\lbrack\mathrm{Slider}((k,2), (0,5)), \mathrm{Dynamic}(k^2)\bigr\rbrack)OutRow([Slider((k,2),(0,5)),Dynamic(k2)])\mathrm{Row}(\bigl\lbrack\mathrm{Slider}((k,2), (0,5)), \mathrm{Dynamic}(k^2)\bigr\rbrack)
source · editable

Transcripts ​

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.

A shared scope

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.

source · editable

History: Out(n), In(n), InString(n)

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.

source · editable

Reactive ​

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.

Order doesn't matter

The middle cell reads a, defined by the cell after it -- and gets the right answer on load, not just after an edit.

source · editable

Editing an upstream cell

Change the 5 in the middle cell and commit (Enter or blur) -- the first and third cells update on their own, without being touched.

source · editable

A duplicate definition

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).

source · editable

Worker evaluator ​

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.

A slow cell doesn't block the page

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.

source · editable