Was ist die Comonad-Typklasse in Haskell? Wie in Comonad von Control.Comonad im Comonad-Paket (Erläuterungen zu anderen Paketen, die eine Comonad-Typklasse bereitstellen, sind ebenfalls willkommen). Ich habe vage von Comonad gehört, aber alles, was ich wirklich darüber weiß, ist, dass es eine extract :: w a -> a
Art Parallele zu Monad bietet return :: a -> m a
.
Bonuspunkte für das Notieren der Verwendung von Comonad im "echten" Code im "echten" Code.
return :: a ~> m a
, flip bind :: (a ~> m b) -> (m a ~> m b)
. Kehren Sie die schnörkellosen Pfeile um und Sie erhalten die komonadischen Operationen : extract :: a <~ w a
, extend :: (a <~ w b) -> (w a <~ w b)
( extract :: w a -> a
, extend :: (w a -> b) -> w a -> w b
)