首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >list是monad和comonad吗?

list是monad和comonad吗?
EN

Stack Overflow用户
提问于 2016-04-21 04:57:20
回答 1查看 214关注 0票数 0

list monad是given here。另请参阅Spivak的paper here。所以list是一个monad。是不是一杯鸡尾酒?你怎么证明这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2016-05-07 13:04:10

列表类型构造函数a ↦ μ L. 1 + a * L不允许使用comonad结构。回想一下,如果它是一个comonad,我们将拥有(使用Haskell的FunctorComonad类型类中的名称)

代码语言:javascript
复制
fmap :: ∀  a b. (a → b) → [a] → [b]
extract :: ∀  a. [a] → a
duplicate :: ∀  a. [a] → [[a]]

然而,即使没有进入任何必要的法律,extract也无法实现,因为它的输入可能是空列表,没有办法提出a

非空列表类型构造函数a ↦ μ NE. a + a * NE确实允许使用comonad结构,其中extract返回第一个元素,duplicate[x, y, ..., z]映射到[[x], [x, y], ..., [x, y, ..., z]] (请注意,通过构造,它们都是非空的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36755044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档