|
2.3.6 Muster, die Alternativen enthalten
Spezifizierung von Mustern, die Alternativen enthalten
Dies definiert, daß h p ergibt, wenn das Argument entweder a oder b ist.
In[1]:= h[a | b] := p
Die ersten zwei Fälle ergeben p.
In[2]:= {h[a], h[b], h[c], h[d]}
Out[2]= 
Sie können auch Alternativen in Transformationsregeln verwenden.
In[3]:= {a, b, c, d} /. (a | b) -> p
Out[3]= 
Hier ist ein anderes Beispiel, in dem eine der Alternativen selbst ein Muster ist.
In[4]:= {1, x, x^2, x^3, y^2} /. (x | x^_) -> q
Out[4]= 
Wenn Sie Alternativen in Mustern benutzen, sollten Sie sich davon überzeugen, daß in jeder Alternative derselbe Satz von Namen auftritt. Wenn ein Muster wie (a[x_] | b[x_]) zu einem Ausdruck paßt, existiert immer ein eindeutiger Ausdruck, der dem Objekt x entspricht. Anderseits wird es beim Muster-Vergleich für (a[x_] | b[y_]) nur einen eindeutigen Ausdruck geben, der entweder x oder y entspricht, aber nicht beiden. Deshalb können Sie zum Beispiel mit x und y nicht auf eindeutige Ausdrücke auf der rechten Seite einer Transformationsregel verweisen.
Hier wird f benutzt, um den Kopf, der entweder a oder b sein kann, zu benennen.
In[5]:= {a[2], b[3], c[4], a[5]} /. (f:(a|b))[x_] -> r[f, x]
Out[5]= 
|