homeSoftwaredesign Softwaredesign: Typdeklarationen Prof. Dr. Uwe Schmidt FH Wedel

Typdeklarationen


weiter

Aliasnamen für Wertebereiche

Deklarationen
von neuen Namen für Typen
weiter
Beispiele
type Item      = (String, Int)
type ItemList  = [Item]
 
type Point     = (Float, Float, Float)
type Cuboid    = (Point, Point)
type Polygon   = [Point]
 
type Vector    = (Float, Float, Float)
 
type Euro      = Double
type Dollar    = Double
 
type String    = [Char]
 
type Function  = Int -> Int
type Function2 = Int -> Int -> Int
type Function2'= Int -> Function
 
type Dictionary= String -> Bool
Namenskonvention
Typnamen beginnen immer mit einem Großbuchstaben
Typvariablen werden immer klein geschrieben
Funktionsnamen beginnen immer mit einem Kleinbuchstaben
Variablen für Werte beginnen immer mit einem Keinbuchstaben
weiter
strukturelle Typgleichheit
merke
Durch Typdeklarationen werden keine neuen Typen, keine neuen Wertebereiche konstruiert.
merke
Durch Typdeklarationen werden nur Wertebereiche benannt.
merke
Euro und Dollar bezeichnen die gleichen Wertebereiche, Point und Vector ebenfalls.
merke
Es sind keine Rekursionen in den Typdeklarationen erlaubt. Dieses würde zu "unendlichen" Typen führen.
weiter
abstrakte Syntax
Ein Datenmodell besteht in Haskell üblicherweise aus einer Menge von Typdeklarationen. Diese haben eine ähnliche Gestalt wie eine Grammatik-Definition. Daher der Name abstrakte Syntax.
Parametrisierung
von Typdeklarationen
 
Typdeklarationen können parametrisiert werden
Beispiele
type List a        = [a]
type Pair a b      = (a, b)
type AssocList k v = [(k,v)]
merke
Diese parametrisierten Typdeklarationen können wie selbstdefinierte Typkonstruktoren gelesen werden.
Beispiele
type String        = List Char
 
type Item          = Pair String Int
 
type ItemList      = AssocList String Int
type FctMap        = AssocList String (Int -> Int)
type FctMap'       = AssocList String Function
gut

Letzte Änderung: 25.04.2013
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel