-- Beisiele für Typsynonyme type Punkt = (Float,Float) p1, p2, p3 :: Punkt p1 = (4.7,-3); p2 = (-6.1, 2); p3 = (-1.0,-1.0) spiegelX :: Punkt -> Punkt spiegelX (x,y) = (x,-y) type Komplex = (Float,Float) z1, z2 :: Komplex z1 = (4.7,-3); z2 = (-6.1, 2) add, mult :: Komplex -> Komplex -> Komplex add (a1,b1) (a2,b2) = (a1+a2,b1+b2) mult (a1,b1) (a2,b2) = (a1*a2 - b1*b2, a1*b2 + b1*a2) -- Beispiel zur ZF-Notation (list comprehension) paare :: [(Int,Int)] paare = [(a,b) | a <- [1..3], b <- [1,2]] -- Multiplikationstabellen -- Schreib die ersten n Vielfachen einer Zahl z in eine Liste -- Drei alternative Möglichkeiten in Haskell: multTab1, multTab2, multTab3 :: Int -> Int -> [Int] multTab1 z n = take n (map (*z) [1..]) multTab2 z n = take n [ a*z | a <- [1..] ] multTab3 z n = take n [z, z+z..]