<notatio-worksheet>
<notatio-worksheet> -- a set of named expressions and a shared view of what they draw.
It is the reactive notebook with two additions, and the additions fall out of the cells rather than being configured:
- A cell that binds a plain number (s := 2) gets a slider. No separate control syntax, which is the whole point: a knob is just a binding you can move. - A cell that leaves an axis variable free gets drawn. z is the complex plane and colours as a portrait, x is a curve, x and y a surface. A cell that binds something draws nothing, so it stays off the screen without saying so.
Together those subsume Manipulate: PolyLog(s, z) over s := 2 is a portrait with a slider, and a second cell Zeta(s, z) is a second view sharing the same s — which is why there is no "which function?" control. Each drawable cell carries a visibility toggle, Desmos-style, and may override the projection its variables imply.
There is no cell history and no ordinals: every cell is defined by its name and recomputed from its dependencies. That is what separates a worksheet from [[notatio-notebook]], whose sequential mode is exactly the transcript this lacks.
Attributes
| Attribute | Type | Default | Notes |
|---|---|---|---|
seed | string | "" | A JSON array of the worksheet's initial cells. An entry is a source string, or an object {value, locked, bind, domain, integer} -- bind/domain pin the declaration so only the value can be edited. Sources are in the syntax in-form names; a binding is s := 2. |
in-form property inForm | string | "notatio" | The seed's syntax: notatio (default) or latex, the editor's own form. |
screen | string | "auto" | Where the shared view sits: auto, side or below. |
readonly | boolean | false | Show the cells without allowing edits. Implies a fixed structure. |
structure | string | "open" | fixed keeps the reader from adding or removing cells; open (default) allows it. |
loop | Loop | "" | == "reflect" || this.loop === "none" ? this.loop : "cycle"),
setLoop: (loop) => (this.loop = loop),
interval: NotatioWorksheet.PLAY_INTERVAL_MS,
motion: "continuous",
update: () => this.requestUpdate(),
},
openPlaybackMenu,
LONG_PRESS_MS,
) | What a sweeping binding does at the ends: cycle (default), reflect or none.reflects |