Einführung in die Auswertung (Maxima Manual)

Next: Funktionen und Variablen für die Auswertung, Previous: Auswertung, Up: Auswertung [Contents][Index]

### 8.1 Einführung in die Auswertung

In Einführung in die Kommandozeile sind die vier Phasen der Eingabe, Auswertung, Vereinfachung und Ausgabe erläutert, die jede Eingabe des Nutzers bis zur Ausgabe auf der Konsole durchläuft.

Jede Eingabe eines Ausdrucks expr wird von Maxima ausgewertet. Symbole, die keinen Wert haben, und Zahlen werden zu sich selbst ausgewertet. Symbole, die einen Wert haben, werden durch ihren Wert ersetzt.

Beispiele:

Im ersten Beispiel werden Symbole und Zahlen zu sich selbst ausgewertet. Im zweiten Beispiel erhält die Variable `a` den Wert `2`. In den folgenden Ausdrücken wird die Variable `a` ausgewertet und durch ihren Wert ersetzt.

    (%i1) [a, b, 2, 1/2, 1.0];
                                      1
    (%o1)                   [a, b, 2, -, 1.0]
                                      2
    (%i2) a:2$

    (%i3) [a, sin(a), a^2];
    (%o3)                    [2, sin(2), 4]

Maxima unterscheidet Funktionen in einer Verbform von Funktionen in einer Substantivform. Funktionen in einer Verbform werden ausgewertet, indem die Funktion auf die ausgewerteten Argumente angewendet wird. Im Gegensatz dazu werden Funktionen in einer Substantivform nicht auf die Argumente angewendet, jedoch werden die Argumente weiterhin ausgewertet. Funktionen können in beiden Formen auftreten. Typische Beispiele sind die Differentiation mit der Funktion `diff` oder die Integration mit der Funktion `integrate`. Siehe zum diesem Thema auch Substantive und Verben.

Beispiele:

Die Variable `a` erhält einen Wert. Im ersten Fall liegt die Funktion `diff` in ihrer Verbform vor. Die Auswertung bewirkt, dass die Funktion auf die Argumente `a*x^2` und x angewendet wird. Im zweiten Fall liegt die Funktion `diff` in ihrer Substantivform vor. Dies wird hier durch den `Quote-Operator` `'` bewirkt. Jetzt wird die Funktion nicht angewendet. Das Ergebnis ist ein symbolischer Ausdruck für die Ableitung. Da auch in diesem Fall die Argumente ausgewertet werden, wird auch hier der Wert `1/2` für die Variable `a` eingesetzt.

    (%i1) a:1/2;
                                    1
    (%o1)                           -
                                    2
    (%i2) diff(a*x^2, x);
    (%o2)                           x
    (%i3) 'diff(a*x^2, x);

                                      2
                                 d   x
    (%o3)                        -- (--)
                                 dx  2

Nicht alle Maxima-Funktionen werten die Argumente aus. Die Dokumentation der Funktionen gibt häufig einen Hinweis darauf, ob die Argumente ausgewertet werden oder nicht.

Beispiel:

Die Funktion `properties` wertet das Argument nicht aus. Dies ist für den Nutzer praktisch, da ansonsten die Auswertung einer Variablen `a`, die einen Wert hat, explizit mit dem Quote-Operator `'` unterdrückt werden müsste, um die Eigenschaften des Symbols `'a` anzuzeigen. Im ersten Fall ist das Ergebnis eine leere Liste. Das Symbol `a` hat keine Eigenschaften. Im zweiten Fall erhält die Variable `a` einen Wert. Die Funktion `properties` wertet ihr Argument nicht aus und `a` wird nicht durch den Wert `2` ersetzt. Die Funktion `properties` zeigt weiterhin die Eigenschaften des Symbols `'a` an.

    (%i1) properties(a);
    (%o1)                          []
    (%i2) a:2$

    (%i3) properties(a);
    (%o3)                        [value]

Die Auswertung von Symbolen, Funktionen und Ausdrücken kann mit dem Quote-Operator `'` und dem Quote-Quote-Operator `''` kontrolliert werden. Der Quote-Operator unterdrückt die Auswertung. Dagegen erzwingt der Quote-Quote-Operator die Auswertung.

Mit der Funktion `ev` wird ein Ausdruck in einer definierten Umgebung ausgewertet, in der Optionsvariablen für die Auswertung einen bestimmten Wert erhalten oder Auswertungsschalter `evflag` und Auswertungsfunktionen `evfun` angewendet werden.

Next: Funktionen und Variablen für die Auswertung, Previous: Auswertung, Up: Auswertung [Contents][Index]