Fachkonzept - Musterabgleich
Ein Musterabgleich verwenden
Auch in dieser Situation wird der Eintrittspreis mit einer Fallunterscheidung beschrieben. Die Fallunterscheidung wird hier mit der Vorgabe von Werten für den Wochentag realisiert.
Eintrittspreis: MO, DI, MI: 4 € DO, FR : 5 € SA, SO : 6 €
Eine solche Fallunterscheidung könnte man mit einem if
-Ausdruck implementieren.
eintrittspreis tag =
if (tag == "MO") then
4
else
if (tag == "DI") then
4
else
...
Günstiger ist es, wenn man einen einem case
-Ausdruck nutzt.
eintrittspreis tag =
case tag of
"MO" -> 4
"DI" -> 4
"MI" -> 4
"DO" -> 5
"FR" -> 5
"SA" -> 6
"SO" -> 6
_ -> 0
Mit einem case-Ausdruck kann man eine Fallunterscheidung mit einem Musterabgleich bilden.
Ein case
-Ausdruck gibt einen Ausdruck für das Muster vor und beschreibt dann die unterschiedlichen Fälle
mit Werten, die der Musterausdruck annehmen kann. Für jeden vorgegebenen Wert wird die Datenverarbeitung mit einen hierfür vorgesehenen Ausdruck
beschrieben. Beachte, dass immer alle möglichen Werte des Musterausdrucks abgedeckt werden müssen.
Das realisiert man meist mit Hilfe des _
, das für alle anderen Werte steht.
Die Abbildung verdeutlicht diesen Aufbau eines case-Ausdrucks.
Eine Fallunterscheidung kann man auch mit einem Musterabgleich (man sagt auch Pattern-Matching) realisieren. Die verschiedenen Fälle beschreibt man durch Werte, die der Ausdruck für das Muster annehmen kann.
Quellen
- [1]: let-Ausdruck - Urheber: KB - Lizenz: inf-schule.de