簡體   English   中英

列出單子和單子嗎?

[英]Is list a monad and comonad?

單子列表在這里給出 另請參見Spivak的論文 所以清單是單子。 是一個笨蛋嗎? 您將如何證明?

列表類型構造函數a↦μL。1 a ↦ μ L. 1 + a * L不允許comonad結構。 回想一下,如果它是一個普通符號,我們將擁有(使用Haskell的FunctorComonad類型類的名稱)

fmap :: ∀  a b. (a → b) → [a] → [b]
extract :: ∀  a. [a] → a
duplicate :: ∀  a. [a] → [[a]]

但是,即使不遵循任何必需的法律, extract也無法實現,因為extract的輸入可能是空列表,無法給出a

非空列表類型構造函數a ↦ μ NE. a + a * NE a ↦ μ NE. a + a * NE確實接受了共納結構,其中extract返回第一個元素,並將[x, y, ..., z] duplicate[[x], [x, y], ..., [x, y, ..., z]] (請注意,它們在構造上都是非空的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM