skip to main content

kiesler.at

Haskell Datentypen
updated by rck, 2004-10-03

Haskell verfügt über eine starke Typisierung. Dieser Artikel möchte einen Einblick in die verfügbaren Datentypen geben.

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13

Produkttypen

Ein Produkt ist im wesentlichen ein "Typisiertes Tupel" mit Konstruktor. Es gibt hier alternativlose, mehrstellige Konstruktoren.

Beispiel

type Name = String
type Alter = Int
data Leute = Person Name Geschlecht Alter

Konstruktor

Der Konstruktor von Leute sieht folgendermaßen aus:

Person :: Name -> Geschlecht -> Alter -> Leute

Vergleich zu Tupel

type Leute = (Name, Geschlecht, Alter)

Vorteile gegenüber Tupel

  • Markierung mit dem Konstruktor -- dient der Dokumentation.
  • Komponentenweise Typensicherheit
  • daraus folgend aussagekräftigere Fehlermeldungen

Nachteile gegenüber Tupel

  • Längere Definitionen, weniger kompakt
  • Polymorphe Standard-Tupelfunktionen wie fst, snd, zip und unzip stehen nicht zur Verfügung.

Beispiele

data Euro = EUR Float
data Yen = YEN Float
data Temperature = Temp Float

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004