Monad
Une monade est un constructeur de type avec les opérations flatMap (bind) et pure (return), fournissant une gestion de contexte pour les calculs chaînés.
Objectif
Abstraire les contextes de calcul (optionnel, asynchrone, erreur, état), en rendant les calculs chaînés élégants et sûrs.
Mécanisme
M<T> fournit pure : T→M<T> et flatMap : M<T> × (T→M<U>) → M<U>. Elle satisfait les lois d'identité gauche/droite et l'associativité. La monade Option gère les null, Result les erreurs et Future l'asynchronisme. Les chaînes de flatMap gèrent le contexte.
Cas d’usage
- Programmation fonctionnelle
- Gestion des erreurs
- Composition asynchrone