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

Wortgetreue MusterEin Beispiel: Definition einer eigenen Integrations-Funktion

2.3.13 Muster für einige übliche Typen von Ausdrücken

Mit den oben beschriebenen Objekten können Sie Muster für viele Arten von Ausdrücken erstellen. Sie wissen ja, daß in allen Fällen die Muster die Struktur der Ausdrücke in der internen Mathematica-Form, wie sie durch FullForm gezeigt wird, darstellen müssen.

Besonders bei einigen häufigen Arten von Ausdrücken ist das Standard-Output-Format, das von Mathematica benutzt wird, der vollständigen internen Form nicht besonders ähnlich. Aber bei der Aufstellung von Mustern müssen Sie die interne Form benutzen.

Einige typische Muster für Zahlen

Hier sind die vollständigen Formen einiger Zahlen.

In[1]:= {2, 2.5, 2.5 + I, 2/7} // FullForm

Out[1]//FullForm=

Die Regel zieht beide Bestandteile der komplexen Zahlen heraus.

In[2]:= {2.5 - I, 3 + I} /. Complex[x_, y_] -> p[x, y]

Out[2]=

Weil diese Ausdrücke unterschiedliche vollständige Formen haben, können Sie x_ + I y_ nicht als Muster einer komplexen Zahl benutzen.

In[3]:= {2.5 - I, x + I y} // FullForm

Out[3]//FullForm=

Dieses Muster paßt sowohl zu gewöhnlichen ganzen Zahlen als auch zu komplexen Zahlen, bei denen Real- und Imaginärteil ganze Zahlen sind.

In[4]:= Cases[ {2.5 - I, 2, 3 + I, 2 - 0.5 I, 2 + 2 I},
_Integer | Complex[_Integer, _Integer] ]

Out[4]=

Wie in Abschnitt 1.4.1 besprochen wurde, überführt Mathematica alle algebraischen Ausdrücke in eine Standardform, in der sie im wesentlichen als eine Summe von Potenzprodukten geschrieben werden. Außerdem werden Brüche in Potenzprodukte konvertiert, wobei Nennerterme negative Exponenten haben, und Differenzen werden in Summen mit negativen Termen verwandelt. Um Muster für algebraische Ausdrücke zu konstruieren, müssen Sie diese Standardform benutzen. Diese Form unterscheidet sich oft von der Art, in der Mathematica die algebraischen Ausdrücke ausdruckt. Aber in allen Fällen können Sie die vollständige interne Form mit FullForm[ausdr] herausfinden.

Hier ist ein typischer algebraischer Ausdruck.

In[5]:= -1/z^2 - z/y + 2 (x z)^2 y

Out[5]=

Dies ist die vollständige interne Form des Ausdrucks.

In[6]:= FullForm[%]

Out[6]//FullForm=

Dies erhalten Sie, wenn Sie eine Transformationsregel auf alle Potenzen des Ausdrucks anwenden.

In[7]:= % /. x_^n_ -> e[x, n]

Out[7]=

Einige typische Muster für algebraische Ausdrücke

Dieses Muster wählt lineare Funktionen von x aus.

In[8]:= {1, a, x, 2 x, 1 + 2 x} /. a_. + b_. x -> p[a, b]

Out[8]=

Einige typische Muster für Listen

Dies definiert eine Funktion, deren Argument eine Liste sein muß, die Listen mit entweder einem oder zwei Elementen enthält.

In[9]:= h[x:{ ({_} | {_, _})... }] := q

Die Definition gilt im zweiten und dritten Fall.

In[10]:= {h[{a, b}], h[{{a}, {b}}], h[{{a}, {b, c}}]}

Out[10]=

Wortgetreue MusterEin Beispiel: Definition einer eigenen Integrations-Funktion