Synonyme
Übersicht: Synonyme
Synonyme für bestehende Typen
Synonyme für bestehende Datentypen können auf folgende Art definiert werden:
01 type Angle = Float
02 type Position = (Float,Float)
|
Eine Deklaration eines Synonyms wird durch das Schlüsselwort type
eingeleitet. Es
entsteht kein neuer Typ, sondern nur ein neuer Name für einen bereits bekannten Datentyp. Das
hat zur Folge, dass auch alle Eigenschaften (z.B. Instanzdeklarationen) geerbt werden.
Die Verwendung von Synonymen kann die Lesbarkeit von Programmen wesentlich verbessern, in dem
beispielsweise komplizierte Typen abgekürzt werden oder (wie oben) sprechende Namen verwendet
werden.
Neue Typen
Möchte man nicht alle Eigenschaften erben, kann man nicht mit Synonymen arbeiten, sondern muss
neue Typen definieren. Die folgende Definition schafft einen neuen Typen Angle
:
01 data Angle = MkAngle Float
|
Für den neuen Datentyp können die Typklassen neu instanziiert werden. Der Umgang mit diesem Datentypen
ist allerdings recht umständlich, da der Konstruktor MkAngle
verwendet werden muss. Die Werte des
Datentyps müssen beim Gebrauch damit maskiert bzw. demaskiert werden.
Ein ähnliche Definition mit dem Schlüsselwort erlaubt es dem Compiler die Maskierungen und
Demaskierungen vor dem Programmlauf zu entfernen und somit das Programm effizienter zu machen. Diese Definition
ist deshalb vorzuziehen.
01 newtype Angle = MkAngle Float
|