Ich fange gerade an, Monaden zu verstehen. Ich denke in Clojure, so Reinheit ist nicht furchtbar wichtig für mich.
Ich habe eine Reihe von Geschäftsvorgängen (zusammensetzbare Transformationen), die fehlschlagen können. Dies kann mit error-monad gut abstrahiert werden.
Einige der Geschäftsvorgänge umfassen Datenbank-IO, und ich muss die Vorgänge aus Geschwindigkeitsgründen als Massenoperationen ausführen. Jede Massenoperation wirkt auf eine Gruppe unabhängiger Elemente, so dass ein Fehler nicht die gesamte Gruppe zum Scheitern bringen darf.
Sollte ich nur denken, meine Bulk-Transformationen als eine Reihe von Funktionen auf ein Objekt (Karte) innerhalb so etwas wie Fehler monad aber handeln auf unabhängige Elemente in einem seq? hilft seq-monad mir hier? wie sollte ich über diese denken?
Ich sehe keinen besonderen Vorteil in der Kombination mit IO-Monad für meine Datenbank-Seiteneffekte in Clojure, Gedanken zu diesem?