EMZETT.
Login

Monaden einfach erklärt

Kurz: Eine Monade ist ein Muster, mit dem man Berechnungen mit „Zusatzverhalten” (kein Ergebnis, Fehler, Liste, Seiteneffekt) sauber hintereinanderschaltet.

Genauer: Sie verpackt einen Wert in einen Behälter und liefert eine Operation (bind, flatMap), die eine Funktion auf den Inhalt anwendet und dabei das Zusatzverhalten selbst erledigt.

Im Detail

  • Option/Maybe: Wert oder „nichts”. flatMap führt die nächste Funktion nur aus, wenn ein Wert da ist. So entfallen verschachtelte Nullprüfungen.
  • Result/Either: Erfolg oder Fehler. Der erste Fehler bricht die Kette ab.
  • Liste: flatMap wendet eine Funktion auf jedes Element an und glättet die Ergebnisse.
  • Promise/Future: Ein Wert, der erst später da ist. then entspricht bind.
  • Gesetze: Linksidentität, Rechtsidentität und Assoziativität sorgen dafür, dass sich Ketten vorhersehbar umformen lassen.
  • Merkhilfe: Eine Monade ist ein Fließband, an dem jeder Schritt seine Eingabe schon „ausgepackt” bekommt.

Siehe auch: Currying