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

 Documentation /  Mathematica /  Das Mathematica Buch /  Mathematica Nachschlageteil /  Muster und Transformationsregeln /

InhaltZuweisungen

A.5.1 Muster

Muster (Pattern) stehen für Klassen von Ausdrücken. Sie enthalten Muster-Objekte, die Mengen möglicher Ausdrücke repräsentieren.

Muster-Objekte

Treten mehrere Muster-Objekte mit demselben Namen in einem einzelnen Muster auf, dann müssen alle Objekte für denselben Ausdruck stehen. So kann f[x_, x_] für f[2, 2] stehen, aber nicht für f[2, 3].

In einem Muster-Objekt wie _k kann der Kopf h ein beliebiger Ausdruck sein, aber kein Muster.

Ein Muster-Objekt wie x__ steht für eine Sequenz von Ausdrücken. So kann zum Beispiel f[x__] für f[a, b, c] stehen, wobei x die Sequenz Sequence[a, b, c] ist. Wird x zum Beispiel im Ergebnis einer Transformationsregel verwendet, so wird die Sequenz in die Funktion eingeflochten, in der x auftritt. So würde g[u, x, u] zu g[u, a, b, c, u] werden.

Treten die Objekte x_:v und x_. als Funktionsargumente auf, so repräsentieren sie Argumente, die weggelassen werden können. Wenn das Argument, das zu x_:v gehört, ausgelassen wird, so wird für x der Wert v angenommen. Wird das zu x_. gehörende Argument ausgelassen, so wird angenommen, daß x einen Vorgabewert besitzt, der mit der Funktion verknüpft ist, in der x_. auftaucht. Dieser Vorgabewert kann durch Zuweisungen an Default[f] spezifiziert werden.

Vorgabewerte

Ein Muster wie f[x__, y__, z__] kann mit einem Ausdruck wie f[a, b, c, d, e] mit mehreren verschiedenen Wahlmöglichkeiten für x, y und z übereinstimmen. Zuerst werden jene Möglichkeiten versucht, bei denen x und y minimale Länge besitzen. Gibt es mehrfache __ oder ___ in einer einzigen Funktion, so wird im allgemeinen zuerst jener Fall versucht, bei dem alle __ und ___ für Sequenzen minimaler Länge stehen, nur die letzte mehrfache Strichfolge steht für den Rest der Argumente.

Treten x_:v oder x_. auf, so wird zuerst jener Fall versucht, in dem keines der beiden für ausgelassene Argumente steht. Anschließend werden solche Fälle versucht, in denen spätere Argumente ausgelassen werden.

Beim Vergleich von Mustern eingesetzte Attribute

Muster-Objekte wie x_ können für jede Folge von Argumenten in einer Funktion mit dem Attribut Flat stehen. Der Wert von x ist in diesem Fall f, angewendet auf die Folge von Argumenten. Hat f das Attribut OneIdentity, dann wird e anstelle von f[e] benutzt, wenn x einer Sequenz mit nur einem Argument entspricht.

InhaltZuweisungen