Mathematica 9 is now available

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Muster /

Konstruktion von Funktionen mit wahlfreien ArgumentenWortgetreue Muster

2.3.11 Wiederholte Muster

Wiederholte Muster

Mit mehrfachen Blanks wie x__ können Sie Muster angeben, in denen Folgen beliebiger Ausdrücke auftreten können. Mit den Mathematica-Musterwiederholungsoperatoren .. und ... lassen sich Muster konstruieren, in denen Formen beliebig oft wiederholt werden können. So repräsentiert zum Beispiel f[a..] einen beliebigen Ausdruck der Form f[a], f[a, a], f[a, a, a] usw.

Das Muster f[a..] erlaubt dem Argument a, beliebig oft wiederholt zu werden.

In[1]:= Cases[{ f[a], f[a, b, a], f[a, a, a] }, f[a..]]

Out[1]=

Dieses Muster erlaubt eine beliebige Anzahl von a-Argumenten, gefolgt von einer beliebigen Anzahl von b-Argumenten.

In[2]:= Cases[{ f[a], f[a, a, b], f[a, b, a], f[a, b, b] },
f[a.., b..]]

Out[2]=

Hier kann jedes Argument entweder a oder b sein.

In[3]:= Cases[{ f[a], f[a, b, a], f[a, c, a] }, f[(a | b)..]]

Out[3]=

Mit .. und ... lassen sich Wiederholungen eines beliebigen Musters darstellen. Wenn das Muster benannte Teile enthält, dann müssen die Teile in jedem Fall identisch sein.

Hier wird eine Funktion definiert, deren Argument aus einer Liste von Paaren bestehen muß.

In[4]:= v[x:{{_, _}..}] := Transpose[x]

Die Definition gilt in diesem Fall.

In[5]:= v[{{a1, b1}, {a2, b2}, {a3, b3}}]

Out[5]=

Bei dieser Definition müssen die zweiten Elemente aller Paare dieselben sein.

In[6]:= vn[x:{{_, n_}..}] := Transpose[x]

Die Definition gilt in diesem Fall.

In[7]:= vn[{{a, 2}, {b, 2}, {c, 2}}]

Out[7]=

Konstruktion von Funktionen mit wahlfreien ArgumentenWortgetreue Muster



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.