Blattsprache
Wie ein Blatt geschrieben und ausgewertet wird: Notation, Zeilenformen, Namen, strenge gegenüber stillen Zeilen und der total-Befehl.
Ein Numlex-Blatt ist ein Stapel logischer Zeilen. Du tippst eine gewöhnliche Zeile Notizbuchtext, und in der Antwortspalte daneben erscheint ein geprüftes Ergebnis.
Diese Seite ist der formale Einstieg in die Blattsprache: die in der ganzen Referenz genutzte
Notation, jede Form, die eine Zeile annehmen kann, die Regeln für Namen und Zuweisungen, der
Unterschied zwischen strengen Zeilen und stiller Prosa und der integrierte total-Befehl.
Notation
Die Referenz nutzt wenige Platzhalter:
| Platzhalter | Bedeutung |
|---|---|
<expr> | jeder arithmetische Ausdruck |
<value> | ein numerischer Wert |
<unit> | eine Einheit oder ein Ausdruck über Einheiten |
<place> | freier Ortsname (bis 100 Zeichen) |
<Answer Token> | ein eingefügtes Antwort-Token (U+FFFC-Marker) |
Syntaxwörter sind englisch. Wo vermerkt, sind sie schreibunabhängig — OF wirkt wie of,
Per Day wie per day. Oberflächensprache und regionales Zahlenformat sind unabhängige
Einstellungen: Lokalisierung ändert nie die Syntax selbst.
Eine Zeile, ein Ergebnis
Jede logische Zeile erzeugt ein Ergebnis in der rechten Spalte. Zeilen werden von oben nach unten ausgewertet, und ein in einer Zeile deklarierter Name ist für die Zeilen darunter sichtbar.
Zeilenformen
| Form | Beispiel | Verhalten |
|---|---|---|
| Leere Zeile | Kein Ergebnis. | |
| Überschrift | # Payroll sheet | Visuelle Überschrift; wird bei Berechnungen übersprungen. |
| Kommentar | // week total | Überspringbare Überschrift-/Kommentarzeile: kein Ergebnis, nie Teil einer Berechnung (keine Zuweisung, kein „Blattname”). |
| Bezeichnung | Total: | Eine mit Doppelpunkt endende Zeile ist eine Bezeichnung/Trennung; sie wird als Übersprung ausgewertet. |
| Benannter Wert | base pay = 4500 | <name> = <expr>: Der Name besteht aus 1–6 ASCII-Wörtern (oder einem Token-Wort), ≤ 40 Zeichen, das erste Wort beginnt mit einem Buchstaben und der Name enthält keine Operatoren. Der Wert ist veränderlich — eine spätere <name> = <expr>-Zeile überschreibt ihn für die Zeilen darunter. |
| Integrierte Summe | total | Befehl (schreibunabhängig), der die zulässigen Zeilen des aktuellen Abschnitts summiert — siehe den total-Befehl. |
| Numerischer Ausdruck | 12 + 30 × 2 | Siehe Operatoren & Logik. |
| Prozent & Geld | 15% of 490, $24 per day | Siehe Prozente und Geld & Kurse. |
| Einheiten | 10 km to m, 90 km per 3 day | Siehe Einheiten & Mengen. |
| Ganzzahlbasen | 0x1F, 255 as hex | Siehe Zahlen & Ganzzahlbasen. |
| Daten | May 5 + 3 weeks | Siehe Daten. |
| Netzwerk | weather in London, distance between … | Siehe Live-Daten & Geografie. |
| Gewöhnlicher Text | bought cable | Still: kein Ergebnis. Der einzige Alt-Rückgriff — in numerischen Zeilen werden unbekannte lateinische Wörter gestrichen (5 apples + 3 → 8). Prosa ohne Zahlen und Wörter anderer Alphabete werden nie ausgewertet. |
Strenge Zeilen und stille Prosa
Die meisten Zeilen dürfen gewöhnlicher Text sein: Kann Numlex keine Berechnung lesen, bleibt die Zeile einfach still. Drei Zeilenarten sind dagegen streng — ihre Form beansprucht die Zeile vollständig, und ein fehlgeschlagenes Parsen ist ein Fehler statt eines Rückgriffs:
- Geldzeilen. Eine Zeile mit Währungsmarker (
$,€,100 USD…) muss vollständig als Geldausdruck geparst werden; sonst ist sie ein verborgener Fehler, und nichts wird geraten. - Datumsförmige Zeilen.
May 5 + 43(ohne Dauerwort) ist ein Fehler — nie zu gewöhnlichen Zahlen „reduziert”. - Aufrufförmige Zeilen. Eine Zeile in Funktionsaufrufform (
name() ist streng: Ein unbekannter Funktionsname ist ein Fehler, keine Klammergruppe.
Alles andere bleibt still — einschließlich gewöhnlicher Prosa, die nie markiert wird.
Namen und Zuweisungen
- Deklariere einen Wert mit
name = expression; der Name steht danach in allen Zeilen darunter für diesen Wert. - Namen sind 1–6 ASCII-Wörter, höchstens 40 Zeichen, das erste Wort beginnt mit einem Buchstaben, innen keine Operatoren.
- Zuweisungen sind veränderlich: Derselbe Name überschreibt den Wert von dieser Stelle abwärts.
- Auch Geldwerte lassen sich benennen — deklariere
lunch = $45und schreibe später2 people × lunch(siehe Geld & Kurse). - Blattnamen sind von Einstellungs-Konstanten getrennt; das Konstantenkonzept ist unter Eigene Einheiten & Konstanten dokumentiert.
Der total-Befehl
Der genaue Befehl ist eine Zeile, deren gesamter Inhalt total ist (schreibunabhängig). Er
wertet die Summe der zulässigen Ergebnisse des aktuellen Abschnitts — seit Blattbeginn
oder seit dem nächsten vorherigen total, einer #-Überschrift oder einem exakten
----Trenner.
total-Zeilen zählen sich nicht gegenseitig: Eine bereits berechnete Summe ist nicht Teil der nächsten. Ein gewöhnlicher Verweis auf eine Summenzeile ist jedoch eine gewöhnliche Zeile und wird einbezogen.- Zulässig: endliche skalare Zahlen — einschließlich der Anzeigearten Prozent und Multiplikator, benannter Skalare und exakter Ganzzahlen (exakt für |v| ≤ 2^53).
- Nicht zulässig: Geld, Mengen mit Einheiten, boolesche Werte, Daten, Fehler, leere/bezeichnete Zeilen und abgeleitete Aggregatzeilen.
- Beschattung: Ein aktiver benannter Wert oder eine Konstante namens
totaldeaktiviert den Befehl — die Zeile wird ein gewöhnlicher benannter Wert. - Die
total-Zeile ist eine Abschnittssumme innerhalb des Blatts. Sie unterscheidet sich von der unteren Total-Leiste der App, die das ganze Blatt unabhängig von Abschnitten summiert, sowie von den Befehlensubtotal/grand total— siehe Tags, Zwischensummen & Statistik.
Weiterführend
- Zahlen & Ganzzahlbasen — Literale, kompakte Suffixe, exakte Ganzzahlbasen.
- Operatoren & Logik — Rangfolge, boolesche Werte und exakte Ganzzahlarithmetik.
- Tags, Zwischensummen & Statistik — Tags, Trenner, Zwischensummen, Gesamtsummen und Aggregate.
- Datums- & Zeitangaben — zeitbezogene Zeilen.
- Integrierte Funktionen — alle 27 Funktionen.
- Natürliche Berechnungen — der praxisnahe Leitfaden zu Alltagszeilen.