Die Klasse Monoid
erlaubt keine Injektion, da das Monoid keine Art von Container ist. Einige Behälter sind Monoide, und dann haben sie ihre eigenen Mittel zur Injektion. Für eine relativ allgemeine Injektion können Sie pure
von Applicative
oder return
von Monad
verwenden (ersteres ist allgemeiner).
Hinzufügen zu dem, was andere gesagt haben: Int
bildet ein Monoid (auf verschiedene Arten). Wie würdest du einen Wert in Int
"injizieren"? Nun, du tust es nicht; Ein Int
ist nur ein Int
. Du könntest vielleicht Null oder etwas verwenden ...?
Wenn nun etwas ein Container ist, bildet es ein Monoid. Aber das Monoid-Bit hilft Ihnen nicht, es als einen Behälter zu behandeln; Sie müssen etwas anderes dafür versuchen. Viele Dinge, die keine Container sind, bilden Monoide.
Tags und Links haskell