Monad
ist ein Monoid, aber es ist ein Monoid in einer anderen Weise als, sagen wir Integer
. Ich frage mich, ob es eine Möglichkeit gibt, Monoid'
und Monad'
so zu schreiben, dass sowohl Integer
als auch Monad'
als Instanzen der gleichen Monoid'
Typklasse ausgedrückt werden können? SoInstanz Monoid Monad
Antwort
Ich mache meinen Kommentar zu einer Antwort auf Tichons Bitte. This blog post zeigt, wie Monad
und Monoid
unter der gleichen Typklasse mit Hilfe von Art Polymorphismus zu vereinheitlichen. Dies unterscheidet sich ein wenig von der Antwort von Tel, da die Monade als Monoid in der Kategorie Endofunctors implementiert ist und nicht als Monoid in einer Kleisli-Kategorie.
Und so machst du * das * Monoid! Ich wollte letzte Nacht keine Art von Kalkül durcharbeiten. –
Die Verbindung ist tot. – user2023370
, lassen Sie uns eine bestimmte Art und Weise holen Integer
hat eine Monoid
instance Monoid Int where
zero = 0
plus = (+)
und jetzt ist hier ein Monad
Monoid
{-# LANGUAGE FlexibleInstances #-}
instance Monad m => Monoid (Kleisli m a a) where
zero = id
plus = (.)
und hier ist eine andere
instance MonadPlus m => Monoid (m a) where
zero = mzero
plus = mplus
Ich bin nicht sicher wie man die "Monade ist ein Monoid in der c Englisch: bio-pro.de/en/region/stern/magazin/...1/index.html Die Formulierung von Endofaktoren ist jedoch in Haskell nicht enthalten.
- 1. Warum MonadPlus und nicht Monad + Monoid?
- 2. Ist die `Monad ((,) w)` Instanz irgendwo Standard?
- 3. Monoid Instanz von Writer (Haskell)
- 4. Anwendungsbeispiel für (Monad m, Monoid o) => m o?
- 5. Einfache Beispiele zur Veranschaulichung von Kategorie, Monoid und Monad?
- 6. Jede Monade ist ein Monoid?
- 7. Gibt Backwards eine Monad-Instanz zu?
- 8. Haskell monad vs applicative Instanz von Funktionen
- 9. Funktion als eine Instanz von Monad
- 10. Anwendbare Instanz für ein Tupel mit Monoid und Funktion innerhalb
- 11. Was ist der Zweck der `Typable (* -> Constraint) Monoid` Instanz?
- 12. Monad Transformatoren Monad Duplizierung
- 13. ExitCodes in Turtle erstellen. Warum gibt es keine Monad/Monad Transformer-Instanz?
- 14. Haskell's Monad vs APL's Monad
- 15. Monad Stack Penetration Klassen mit Free/Operational Monad Transformers?
- 16. Definieren Sie scalaz Monad-Instanz für eine formlose hlist
- 17. Gibt es eine Instanz von Monad, aber nicht von MonadFix?
- 18. Warum ist Free nicht Monad Instanz in Scalaz 7.1.5?
- 19. Prompt Monad in Purescript
- 20. Haskell Monoid faltbar Rosenstock
- 21. Scalaz: Monoid nicht
- 22. Endofunction als Monoid
- 23. Restricted Monoid Typ Werte Zusammensetzung
- 24. Monad Transformator für NonEmptyList?
- 25. Monoid Parsing - was ist das?
- 26. Warum Int implementiert "Monoid" nicht?
- 27. Instancing Monoid für einen Typ
- 28. State Monad Bind
- 29. Übersetzen von Monad zu Applicative
- 30. Monad-Transformatoren mit Scalaz-Streams
Ich denke, dass Sie [diesen Blogbeitrag] (http://www.jonmsterling.com/posts/2012-01-12-unifying-monoids-and-monads-with-polymorphic-kinds.html) erklären möchten wie man guten Polymorphismus verwendet, um die beiden unter der gleichen Typklasse zu vereinheitlichen. –
@GabrielGonzalez: Kannst du das zu einer Antwort machen? Es beantwortet tatsächlich die Frage, so wie ich sie verstehe, anders als die aktuelle Antwort. –