homeSoftwaredesign Softwaredesign: Tupel, Listen und Funktionen Prof. Dr. Uwe Schmidt FH Wedel

Tupel, Listen und Funktionen


weiter

Typkonstruktoren für Tupel

Paare, Tripel, n-Tupel
Seien t1,t2,...,tn Variablen für Datentypen (Wertebereiche)
(t1,t2)
ist der Wertebereich aller Paare
mit 1. Komponente vom Typ t1
mit 2. Komponente vom Typ t2
weiter
(t1,t2,...,tn)
ist der Wertebereich aller n-Tupel
mit i. Komponente vom Typ ti
weiter
Beispiele
Typen
(String,Int)
(Float,Float,Float)
(String,(Int,Int))
Werte
("abc",123)
(1.0,0.0,2.0)
("xxx",(1,2))
Funktionen
fst :: (a,b) -> a
snd :: (a,b) -> b

weiter

Typkonstruktor für Listen

Listen
Sei t eine Variable für einen Datentyp
weiter
[t]
bezeichnet den Wertebereich aller Listen mit Elementen vom Typ t
weiter
Beispiele
Typen
[Bool]
[(String, Int)]
[Char]
[[Int]]
Werte
[], [False], [True,False,True]
[("x",1), ("xx",2), ("xxx",3)]
['a','b','c'], "abc"
[[], [1], [1,2]]
Funktionen
null   :: [a] -> Bool
head   :: [a] -> a
tail   :: [a] -> [a]
(++)   :: [a] -> [a] -> [a]
(:)    ::  a  -> [a] -> [a]
(!)    :: [a] -> Int ->  a
length :: [a] -> Int

weiter

Typkonstruktor für Funktionen

Funktionen
Seien t1 und t2 Variable für Datentypen
weiter
t1 -> t2
bezeichnet den Wertebereich aller Funktionen mit Argumenttyp t1 und Resultattyp t2.
weiter
Beispiele
Typen
Int -> Int
(Int, Int) -> Int
Int -> (Int -> Int)
[(String, Int)] -> Bool
Werte
incr :: Int -> Int
incr x = x + 1
 
add :: (Int, Int) -> Int
add (x, y) = x + y
 
add' :: Int -> Int -> Int
add' x y = x + y
merke
Der Funktionspfeil ist ein rechtsassoziativer Operator
gleichwertig
Int -> (Int -> Int)
 
Int -> Int -> Int
Funktionskomposition
(.)   :: (b -> c) -> (a -> b) -> (a -> c)
 
(f . g) x = f (g x)
gut
Es gibt keinen Unterschied zwischen Werten und Funktionen
gut
Funktionen sind ganz normale Werte

weiter

Typkonstruktoren

Typkonstruktoren
sind Operatoren, mit denen man aus gegebenen Typen neue Typen konstruieren kann.
weiter
( , )
( , , )
[ ]
 -> 
sind vordefinierte Typkonstruktoren
merke
Es ist möglich, eigene Typkonstruktoren zu definieren (Beispiele folgen).

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