首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kleisli是函子、应用程序还是单子?

Kleisli是函子、应用程序还是单子?
EN

Stack Overflow用户
提问于 2015-03-10 20:48:46
回答 1查看 657关注 0票数 2

这个问题的灵感来源于给我以前的question的反馈

Scalaz为函数A => M[B]提供了包装类Kleisli[M[_], A, B]

如果Kleisli[M[_], A, B]是半群,则M[_]是半群。假设M[_]是函子。Kleisli也是函子,这是正确的吗?如果M[_]是一个应用程序或单一的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-10 21:51:45

完全未应用的Kleisli不算什么--它有类(* -> *) -> * -> * -> *,而且我不知道有任何有意义的类型类。

但是,如果您有一个类型构造函数F[_]的monad,那么Kleisli[F, ?, ?]就是一个Arrow (它是类* -> * -> *的类型类)。

类似地,如果F[_]有一个函子实例,那么Kleisli[F, A, ?]对于任何特定的A都有一个函子实例。实际上,同样的情况也适用于应用程序函子和单子--有一个用于F[_]的它们的实例,也有一个用于Kleisli[F, A, ?]的实例。

最后,如果F[B]有半群(或单半群),那么Kleisli[F, A, B]是任何A的半群(或单半群)。

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

https://stackoverflow.com/questions/28973806

复制
相关文章

相似问题

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