13.07.2015 Aufrufe

Monaden

Monaden

Monaden

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Monaden</strong>map :: (a → b) → (M a → M b)map f m = m λa. unit (f a)joinjoin z:: M (M a) → M a= z λm.mDie Operation map überführt eine Funktion f des Typs a → b in einemonadische Berechnung (mit den Nebenwirkungen der durch und unitdefinierten Monade) des Typs M a → M b. Die Operation join verbindetzwei Berechnungen bzw. deren Nebenwirkungen zu einer gemeinsamen.Man kann map auch dazu verwenden, eine Funktion auf jedes Elementeiner Liste – wie später gezeigt wird, stellen auch Listen eine Monade dar –anzuwenden, und join dazu, eine Liste aus Listen zu erstellen!Mittels map und join kann man weitere Gesetze aufstellen. Dabei sei iddie Einheitsfunktion (id x = x) und (·) die Komposition zweier Funktionen((f · g) x = f (g x)):map idmap ( f · g)= id= map f · map gmap f · unit = unit · fmap f · join = join · map (map f )join · unitjoin · map unitjoin · map join= id= id= join · joinm k = join (map k m)Der Beweis dieser Gesetze folgt aus den Definitionen von map und joinsowie den drei <strong>Monaden</strong>-Gesetzen. Man kann <strong>Monaden</strong> statt über unit und auch über unit, join und map definieren [4, 5]. Dann treten die erstensieben der obigen Gesetze an die Stelle der drei zuvor genannten <strong>Monaden</strong>-Gesetze. Beide Definitionsweisen sind absolut gleichwertig.Julian Mehnle 11

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!