Mein Verständnis ist das Folgende:
Angenommen, M1
und M2
sind Monaden, d.h. sie stellen die Funktionen unit
und flatMap
bereit, die den monadischen Gesetzen entsprechen. Leider können nicht unit
und flatMap
für M1[M2]
erstellen. Es sieht so aus, als ob die unit
und flatMap
nicht immer für alle M1
und M2
existieren. Ich weiß nicht, ob wir es beweisen müssen.
Die Lösung besteht also darin, einen -Wrapper W
für M1[M2]
zu erstellen, so dass W[M1, M2]
eine Monade ist, und stattdessen zu verwenden. Dieser Wrapper W
heißt Monad Transformer .
Verstehe ich es richtig?
Tags und Links scala functional-programming monads monad-transformers