Benutzerdefinierte Datentypen



next up previous
Next: Typ-Synonyme Up: Typen in Gofer Previous: Polymorphismus

Benutzerdefinierte Datentypen

Benutzerdefinierte Datentypen werden mit dem data-Befehl deklariert:

        data Datatype a1 ... an = constr1 | ... | constrm
wobei Datatype der Name (beginnend mit einem groBuchstaben) des neuen n-stelligen Typkonstruktors ist (), verschiedene Typvariablen sind und constr1 ...constrm () die Art beschreiben, in der die Elemente des neuen Datentyps konstruiert werden. Dabei können die Konstruktoren (constr) als Konstruktorfunktionen (beginnend mit einem groBuchstaben) oder als Konstruktoroperatoren (beginnend mit einem Doppelpunkt) dargestellt werden:
        data Tag = Son | Mon | Die | Mit | Don | Fre  |  Sam
neuer 0-stelliger Datentyp Tag, der als Wert eine von sieben 0-stelligen Konstruktorfunktionen annehmen kann
        data Temp = Celsius Float | Fahrenheit Float
        a :: Temp
        a = Celsius 0.0
        a = Fahrenheit 32.0
0-stelliger Datentyp Temp mit zwei einstelligen Konstruktorfunktionen
        data Set a = Set [a]
        m :: Set Int
        m = Set [1, 2, 3]
        n :: Set Float
        n = [1.4, 4.8]
einstelliger Datentyp mit einstelliger Konstruktorfunktion
        data Tree a = Lf a | Tree a :^: Tree a
        b :: Tree Int
        b = Lf 2 :^: ( Lf 4 :^: Lf 6)
einstelliger Datentyp mit Konstruktorfunktion und Konstruktoroperator



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