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 /  Die Prinzipien von Mathematica /  Muster /

Ausdrücke finden, die zu einem Muster passenSpezifizieren der Typen von Ausdrücken in Mustern

2.3.3 Benennen von Bestandteilen von Mustern

Besonders wenn Sie Transformationsregeln benutzen, werden Sie oft Bestandteile von Mustern benennen müssen. Ein Objekt wie x_ steht für einen beliebigen Ausdruck, aber gibt dem Ausdruck den Namen x. Sie können dann zum Beispiel diesen Namen auf der rechten Seite einer Transformationsregel benutzen.

Ein wichtiger Punkt ist: Wenn Sie x_ benutzen, verlangt Mathematica, daß alle mit demselben Namen x auftretenden Blanks in einem Ausdruck für denselben Ausdruck stehen müssen.

So kann f[x_, x_] nur für Ausdrücke stehen, in denen die zwei Argumente von f genau dieselben sind. Anderseits kann f[_, _] für einen beliebigen Ausdruck der Form f[x, y] stehen, wobei x und y nicht dieselben zu sein brauchen.

Die Transformationsregel ist nur in den Fällen anwendbar, wenn die zwei Argumente von f identisch sind.

In[1]:= {f[a, a], f[a, b]} /. f[x_, x_] -> p[x]

Out[1]=

Mathematica erlaubt Ihnen nicht nur, einzelnen Blanks Namen zu geben, sondern auch irgendwelchen Bestandteilen eines Musters. Das Objekt x:muster repräsentiert im allgemeinen ein Muster, dem der Name x zugewiesen wurde. In Transformationsregeln können Sie diesen Mechanismus benutzen, um genau die Bestandteile eines Musters zu benennen, die Sie benötigen, um sich auf der rechten Seite der Regel auf sie zu beziehen.

Muster mit Namen

Dies gibt der kompletten Form _^_ einen Namen, so daß Sie sich auf der rechten Seite der Transformationsregel auf sie als Ganzes beziehen können.

In[2]:= f[a^b] /. f[x:_^_] -> p[x]

Out[2]=

Hier wird der Exponent mit n bezeichnet, während x das ganze Objekt ist.

In[3]:= f[a^b] /. f[x:_^n_] -> p[x, n]

Out[3]=

Wenn Sie zwei Bestandteilen eines Musters denselben Namen geben, erzwingen Sie, daß das Muster nur zu solchen Ausdrücken paßt, in denen die entsprechenden Bestandteile identisch sind.

Hier paßt das Muster zu beiden Fällen.

In[4]:= {f[h[4], h[4]], f[h[4], h[5]]} /. f[h[_], h[_]] -> q

Out[4]=

Jetzt müssen beide Argumente von f gleich sein, und nur der erste Fall paßt.

In[5]:= {f[h[4], h[4]], f[h[4], h[5]]} /. f[x:h[_], x_] -> r[x]

Out[5]=

Ausdrücke finden, die zu einem Muster passenSpezifizieren der Typen von Ausdrücken in Mustern