Vorlesung: Praxis der Funktionalen Programmierung
| Index
Mehr falsche Funktoren
Zur Wiederholung und Verdeutlichung:
ein Typkonstruktor m ist ein Funktor,
wenn es eine Funktion fmap mit diesen Eigenschaften gibt:
- (T) fmap :: (a -> b) -> (m a -> m b)
- (I) fmap id = id
- (C) fmap f . fmap g = fmap (f . g)
Wir hatten schon Beispiele, die T erfüllen, aber I und C nicht.
Wir können sogar T und C erfüllen, zum Beispiel
fmap f [] = []; fmap f (x : xs) = [ f x ]
Geht das auch andersrum (T und I, aber C nicht)?
http://www.informatik.uni-leipzig.de/~joe/
mailto:joe@informatik.uni-leipzig.de