Synonyme


... [ Seminar "Einführung in die funktionale Programmiersprache Haskell" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ...

Ü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.


[ nach oben ]

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


... [ Seminar "Einführung in die funktionale Programmiersprache Haskell" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ... [ nach oben ] ...