Monad
Ein Monad ist ein Typkonstruktor mit den Operationen flatMap (bind) und pure (return), der Kontextverwaltung für verkettete Berechnungen bereitstellt.
Zweck
Rechenkontexte (optional, asynchron, Fehler, Zustand) abstrahieren und verkettete Berechnungen elegant und sicher machen.
Mechanismus
M<T> stellt pure: T→M<T> und flatMap: M<T> × (T→M<U>) → M<U> bereit. Es erfüllt die Links-/Rechts-Identitätsgesetze und die Assoziativität. Das Option-Monad behandelt null, Result Fehler und Future Asynchronität. flatMap-Ketten verwalten den Kontext.
Anwendungsfälle
- Funktionale Programmierung
- Fehlerbehandlung
- Asynchrone Komposition