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 /

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