Comonad typeclass ใน Haskell คืออะไร? เช่นเดียวกับใน Comonad จากControl.Comonad ในแพ็คเกจ comonad (ยินดีต้อนรับคำอธิบายของแพ็คเกจอื่น ๆ ที่มีคลาสประเภท Comonad ด้วย) ผมเคยได้ยินเกี่ยวกับราง Comonad แต่ทั้งหมดที่ผมรู้เกี่ยวกับมันว่าจะให้extract :: w a -> a
เรียงลำดับของขนานไป return :: a -> m a
Monad
คะแนนโบนัสสำหรับการสังเกตการใช้งาน Comonad แบบ "ชีวิตจริง" ในโค้ด "ของจริง"
return :: a ~> m a
, flip bind :: (a ~> m b) -> (m a ~> m b)
. ย้อนกลับลูกศรไก่เขี่ยและคุณได้รับการดำเนินการ comonadic: extract :: a <~ w a
, extend :: (a <~ w b) -> (w a <~ w b)
( extract :: w a -> a
, extend :: (w a -> b) -> w a -> w b
)