Polymorphe Typen

Container-Datentypen sollten generisch polymorph im Inhaltstyp sein

data Tree a = Leaf {}
    | Branch { left :: Tree a, key :: a
             , right :: Tree a }
data List a = Nil {}
    | Cons { head :: a, tail :: List a }
(Kleinbuchstabe = Typvariable, implizit all-quantifiziert)


Übung: Konstruiere Objekte dieser Typen (aus Prelude):

Maybe a   ;   Either a b  ;  (a, b)



Johannes Waldmann 2012-06-25