#include "head.html"
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)?
#include "foot.html"