Es erschien mir nur, dass es keine Möglichkeit gibt, einen einzelnen Wert in ein Monoid in Data.Monoid
zu injizieren. Ich zögere, Data.Monad.return
dafür zu verwenden, aber ich hoffte, etwas wie singleton
für verschiedene Arten zu finden.Wie wird ein Wert in ein Monoid injiziert?
Antwort
Die Klasse Monoid
erlaubt keine Injektion, da das Monoid keine Art von Behälter 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).
Hmm ... also ... gibt es eine theoretische geerdete Klasse, die' Container umschließt '? – fho
@Florian: Typ Konstruktoren mit dieser "inject" -Operation, aber nicht unbedingt 'Applicative', eine aufgerufene [' Pointed'] (http://hackage.haskell.org/packages/archive/pointed/3.0.3/doc/ html/Data-Pointed.html). – leftaroundabout
Hinzufügen zu dem, was andere gesagt haben: Int
bildet ein Monoid (auf verschiedene Arten). Wie würden Sie 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.
- 1. Jede Monade ist ein Monoid?
- 2. Inject Wert in Abhängigkeit injiziert
- 3. Wie wird ein Typ, der in einen Controller injiziert wird, mit Parameterüberschreibung aufgelöst?
- 4. Wie wird ein 1-Bit-Wert zugewiesen?
- 5. Wie wird EntityManager in CDI (Weld) injiziert?
- 6. Wie wird ein hexadezimaler Wert 1F dargestellt?
- 7. WSO2 - Wert dynamisch in den Endpunkt injiziert
- 8. Grails: Wie Unit-Test ein Befehlsobjekt mit einem Dienst injiziert
- 9. Anwendbare Instanz für ein Tupel mit Monoid und Funktion innerhalb
- 10. Wenn "Liste" ein Monoid ist, was ist sein "Set"?
- 11. Wie wird ein Guint64-Wert gedruckt, wenn glib verwendet wird?
- 12. zählt, wie oft ein Wert in Tabellen dargestellt wird SQL
- 13. Wie ein gesicherter Wert in Paws Server-Antwortfeld angezeigt wird
- 14. Wie wird ein Enum-Wert in eine Const-Zeichenfolge eingeschlossen?
- 15. Wie wird ein symbolischer Wert in Matlab gespeichert?
- 16. Wie wird PersistenceContext während des Komponententests injiziert?
- 17. , wie ein Wert
- 18. Wird ein unbestimmter Wert undefiniertes Verhalten gelesen?
- 19. Warum wird ein Wert plötzlich zu Null?
- 20. Wie wird ein Rval dereferenziert?
- 21. Wie wird ein Integer-Wert in ein Doppelregister in MIPS geladen?
- 22. Instanz Monoid Monad
- 23. JavaScript Splitting ein Wert in ein Array
- 24. Wie reiche ich automatisch ein Dropdown ein, wenn ein anderer Wert als der erste Wert ausgewählt wird?
- 25. Startup EJB nicht injiziert, wenn ein SessionScope CDI Bean initialisiert
- 26. Wie wird ein Boolescher Wert in einer Datenbank gespeichert? Ist es ein spezieller String?
- 27. Wie schreibe ich ein || Ausdruck in Javascript wo 0 nicht als ein falscher Wert behandelt wird?
- 28. Wie wird ein einzelner Integer-Wert aus einem String ausgewählt?
- 29. Wie wird ein Wert von Reactjs onPaste-Ereignis eingefügt?
- 30. Wie wird ein bestimmter Wert über Filter angezeigt?
Ein 'Monoid' ist nur ein Typ mit einer' Monoid'-Instanz, es ist kein Container (in der Regel) in den Sie Werte injizieren. Zum Beispiel gibt es eine 'Instance Monoid Ordering', und dafür haben Sie die drei (nicht unteren) Werte' LT', 'EQ',' GT', es gibt nichts zu injizieren, schreiben Sie einfach den Wert. –
Welchen Typ hätte es? 'Singleton :: Monoid m => a -> ???' –
@AlexeyRomanov 'Singleton x = mempty' :) (sehr nützlich) –