This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Mathematica Nachschlageteil /  Evaluierung /

Die Standard-EvaluierungssequenzUmgehen der nicht standardmäßigen Evaluierung von Argumenten

A.4.2 Nichtstandardmäßige Evaluierung von Argumenten

Es gibt eine Anzahl von eingebauten Mathematica-Funktionen, die ihre Argumente auf besondere Weise evaluieren. Die Kontrollstruktur While ist ein Beispiel. Das Symbol While hat das Attribut HoldAll. Die Folge ist, daß die Argumente von While nicht als Teil eines Standard-Evaluierungsprozesses evaluiert werden. Stattdessen wertet der interne Code für While die Argumente auf eine besondere Weise aus. Im Falle von While wertet der Code die Argumente wiederholt aus, um damit eine Schleife auszuführen.

Eingebaute Funktionen, die ihre Argumente auf eine besondere Art evaluieren

Logische Operationen

In einem Ausdruck der Form &&&& werden die der Reihe nach evaluiert. Sobald irgendein als False erkannt wird, wird die Evaluierung gestoppt und das Ergebnis False zurückgegeben. Das bedeutet, daß die zur Repräsentation verschiedener Zweige in einem Programm benutzt werden können, wobei ein einzelner Zweig nur dann evaluiert wird, wenn bestimmte Bedingungen zutreffen.

Die Funktion Or arbeitet ähnlich wie And; sie ergibt True, sobald sie ein Argument findet, das True ist. Xor wertet anderseits alle seine Argumente aus.

Iterationsfunktionen

Eine Iterationsfunktion wie etwa Do[f, i, imin, imax] wird wie folgt evaluiert:

FilledSmallSquare Die Spezifikation der Iteration wird evaluiert. Wenn sie nicht die Form i, imin, imax hat, wird die Evaluierung abgebrochen.

FilledSmallSquare Der Wert der Iterationsvariablen i wird mittels Block als lokal erklärt.

FilledSmallSquare Mit imin und imax wird die Wertefolge bestimmt, die der Iterationsvariablen i zugewiesen wird.

FilledSmallSquare Die Iterationsvariable wird sukzessiv auf jeden einzelnen Wert gesetzt, und jedesmal wird f evaluiert.

FilledSmallSquare Die i zugeordneten lokalen Werte werden gelöscht.

Gibt es mehrere Iterationsvariablen, folgt für jede Variable der Reihe nach die gleiche Prozedur, wie für jeden Wert von allen vorhergehenden Variablen.

Wenn nicht anders spezifiziert, wird f nicht evaluiert, ehe i nicht einen bestimmten Wert erhalten hat; dann wird die Funktion für jeden gewählten Wert von i evaluiert. Mit Evaluate[f] kann man erreichen, daß f sofort ausgewertet wird und nicht erst, nachdem i ein bestimmter Wert zugewiesen wurde.

Zuweisungen

Die linke Seite von Zuweisungen wird nur teilweise evaluiert.

FilledSmallSquare Ist die linke Seite ein Symbol, wird keine Evaluierung durchgeführt.

FilledSmallSquare Ist die linke Seite eine Funktion ohne Hold-Attribute, werden die Argumente der Funktion evaluiert, die Funktion selbst wird nicht evaluiert.

Die rechte Seite der Funktion wird für sofortige Zuweisungen (=) evaluiert, jedoch nicht für verzögerte Zuweisungen (:=).

Ein Unterausdruck der Form HoldPattern[ausdr], der auf der linken Seite einer Zuweisung auftritt, wird nicht evaluiert, jedoch wird er vor der Zuweisung durch die unevaluierte Form von ausdr ersetzt.

Die Standard-EvaluierungssequenzUmgehen der nicht standardmäßigen Evaluierung von Argumenten