Pattern Matching



next up previous
Next: Pattern Up: Funktionsdefinition Previous: Funktionsdefinition

Pattern Matching

Funktionen werden in Gofer definiert, durch eine oder mehrere Gleichungen der Form:

        f pat1 pat2 ... patn = rhs
(oder durch einen äquivalenten Ausdruck, bei dem die Funktion durch einen Operator dargestellt wird - s. Funktionsnamen). Jeder der Ausdrücke pat1 pat2 ... patn representiert ein Argument der Funktion f und wird als 'Pattern' bezeichnet. Die Anzahl der Pattern bestimmt also die Stelligkeit der Funktion. Wird f durch mehr als eine Gleichung definiert, so müssen alle Gleichungen hintereinander stehen und die gleiche Stelligkeit besitzen.
Bei der Ausführung einer Funktion, die durch mehr als eine Gleichung definiert wurde, findet ein Pattern-Matching statt, bei dem die Argumente der Funktion mit den Pattern der Definitionsgleichungen verglichen werden (in der Reihenfolge, in der sie definiert wurden). Die erste Gleichung, bei der die Pattern mit den Argumenten der Funktion übereinstimmen, wird ausgeführt:
        hello "Mark" = "Howdy"
        hello name   = "Hello " ++ name ++ ", nice to  meet you!"
Aufruf: hello ''Mark'' ergibt: Howdy
Aufruf: hello ''Fred'' ergibt: Hello Fred, nice to meet you!
        hello name = "Hello " ++ name ++ ", nice to  meet you!"
        hello "Mark" = "Howdy"
Aufruf: hello ''Fred'' ergibt: Hello Fred, nice to meet you!
Aufruf: hello ''Mark'' ergibt: Hello Mark, nice to meet you!


Sven Eric Panitz
Mi., 01. Nov. 1995, 12:17:13