首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在函数式编程中,Store Comonad和可表示的Store Comonad有什么不同?

在函数式编程中,Store Comonad和可表示的Store Comonad有什么不同?
EN

Stack Overflow用户
提问于 2019-01-25 23:50:03
回答 1查看 301关注 0票数 3

可代表商店Comonad和商店Comonad提供了类似的功能...什么时候我们应该使用一种而不是另一种,好处是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-26 00:22:29

作为参考,这里快速回顾一下它们是什么:

代码语言:javascript
复制
class {- ... => -} Representable f where
    type Key f
    -- ...

data RepStore f a = RepStore (Key f) (f    a)
data    Store s a =    Store s       (s -> a)

特别要注意的是

代码语言:javascript
复制
instance Representable (s -> a) where
    type Key (s -> a) = s
    -- ...

所以我们直接知道Store sRepStore (s ->)几乎是完全可以互换的。另一方面,范畴理论告诉我们,所有的Representable函子都与函数同构(以它们的Key为域),因此RepStore fStore (Key f ->)是同构的。

总而言之:在大多数情况下,你选择哪一个并不重要。如果您计划只在函数上使用它,那么您还可以使用Store,并从它的语法轻量级中受益;如果您希望使用一些不完全是函数的可表示的函数器(例如,记忆函数或类似的函数),那么RepStore是一个适当的泛化。

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

https://stackoverflow.com/questions/54368676

复制
相关文章

相似问题

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