Konstruktorklassen

Listen und Bäume besitzen strukturerhaltendes Rekursionsschema:

map  :: (a -> b) -> ([a] -> [b])
tmap :: (a -> b) -> (Tree a -> Tree b)
Diese Gemeinsamkeit wird ausgedrückt durch:
class Functor f where
    fmap :: (a -> b) -> (f a -> f b)
instance Functor [] where fmap = map
instance Functor Tree where fmap = tmap
Functor ist eine Klasse für Typkonstruktoren

(Datenkonstruktor: erzeugt Datum, Typkonstruktor: erzeugt Typ)



Johannes Waldmann 2007-06-21