Was ist die Comonad typeclass in Haskell?
Was ist der Comonad typeclass in Haskell? Wie in Comonad von Kontrolle.Comonad in der comonad Paket (Erklärungen der anderen Pakete, die eine Comonad typeclass sind auch willkommen). Ich habe vage hörte Comonad, aber alles, was ich wirklich darüber weiß, ist, dass ist bietet extract :: w a -> a
eine Art parallel zur Monade ist return :: a -> m a
.
Bonus-Punkte für die Feststellung, das "wirkliche Leben" verwendet, der Comonad in "echtem" code.
InformationsquelleAutor der Frage Dan Burton | 2011-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können diese links hilfreich sein:
InformationsquelleAutor der Antwort Alexey Romanov
Diese nicht vollständig meine Frage beantworten, aber ich wollte einige relevante Informationen im Antwort-format:
"co" (Locker) bedeutet "flip the arrows". Hier ist eine grobe visuelle.
Betrachten Sie die monadischen Operationen:
Rückseite der schnörkeligen Pfeile, und Sie bekommen die comonadic Operationen:
(Geschrieben mit normalen Pfeilen)
Beachten Sie, wie in diesem format
return
ist ein Pfeil, der gerade so passiert zu passen, der in der argument-slot fürflip (>>=)
und das gleiche gilt vonextract
undextend
. Monade/comonad Gesetze sagen, dass, wenn Siereturn
oderextract
in diesem slot, das Ergebnis ist die Identität Pfeil. Die Gesetze sind die gleichen, "nur mit der Pfeile umgedreht". Das ist ein super handwavey Antwort, aber hoffentlich gibt es einige Einblicke.InformationsquelleAutor der Antwort Dan Burton