Das oberste Element des Stacks lässt sich in einen Zwischenspeicher kopieren und von dort jederzeit wieder abrufen. Als Speicherwert sind beliebige Elemente oder ein String mit Operatoren möglich.
Es gibt drei Speicher-Operatoren:
x "name" def: Speichern des Stackelementes x in der Variablen name
"code" "name" defop: speichern des Codes code in der Variablen name
"name" del: Löschen der Variablen name
Variablen werden abgerufen, indem einfach ihr Name eingegeben wird.
Im folgenden Beispiel wird ein Term aufgebaut und eine Kopie davon in der Speicherzelle mit dem Namen dp gespeichert:
Eingabe | Button | Stack |
---|---|---|
\phi(z,t) | \phi(z,t) | |
2 | 2 \phi(z,t) | |
partn | ∂yx | \partial^{2} \phi(z,t) |
"dp" | dp \partial^{2} \phi(z,t) | |
def | def "y" x | \partial^{2} \phi(z,t) |
Das Abspeichern kann auch in einer Zeile eingegeben werden: "dp" def
Achtung: Der Variablenname sollte in Gänsefüsschen gesetzt werden, sonst wird die entsprechende Speicherzelle abgerufen, anstatt dass der Name auf den Stack gesetzt wird! Die Gänsefüsschen können nur weggelassen werden, wenn es nocht keine Speicherzelle mit diesem Namen gibt.
Um den Inhalt der Speicherzelle mit dem Namen dp auf den Stack zu kopieren, muss lediglich der Name dp als Operator eingegeben werden:
Eingabe | Button | Stack |
---|---|---|
dp | \partial^{2} \phi(z,t) |
"code" "name" defop
Mit dem Operator defop können eigene Operatoren definiert werden. Im String code werden dazu eine Sequenz von Elementen (Symbolen, Operatoren usw.) eingegeben. Diese werden beim Abruf der Speicherzelle dann ausgeführt. In der Anzeige des Zwischenspeichers erkennt man eigene Operatoren daran, dass sie in Gänsefüsschen gesetzt sind.
Wenn man zum Beispiel einen Operator tomem (to memory) programmieren will, der den obersten Stack-Eintrag in die Speicherzelle mem kopiert, so kann man diesen wiefolgt erstellen:
"\"mem\" def" "tomem" defop
Achtung: Strings in Strings, wie im Beispiel der String "mem" müssen ein \ vor dem Gänsefüsschen haben.
Im Speicher steht danach:
tomem : ""mem" def"
Bei der Eingabe von tomem werden die Elemente im String, also "mem" und def, der Reihe nach ausgeführt. Dabei wird also zunächst der String (Name) "mem" auf den Stack gesetzt und dann der Operator def ausgeführt, welcher den Namen vom Stack entfernt und dann den obersten Stack-Eintrag in die Variable mem kopiert.
Mit der Checkbox ShowMem neben der Eingabezeile kann der Zwischenspeicher in einem Fenster angezeigt werden.
Die Anzeige des Speichers im Fenster kann direkt editiert werden! Es können auch neue Einträge direkt in das Fenster eingegeben oder kopiert werden! Über dieses Fenster kann man also den Speicher z.B. in ein Textfile kopieren und von dort wieder in den UPN-TeX Editor einfügen.
Neue Einträge müssen folgendes Format haben:
Variablenname : Wert
Ein Operator hat das Format:
Op-Name : "Code"