返回信息流鉴于论坛没有Haskell版,Python又声称自己是支持fp的,只好来这里提问了。
假设范畴C中只有整数集这一个object,一个函数f::Int->Int,它显然是一个从C到C的morphism,所以它应该是一个C上的endofunctor吧?那么一个仅包含这个endofunctor(即函数f)的范畴一定是monoidal的吧?按照这个思路,这个函数f就是一个monad了?似乎有些反直觉呀。
这是一条镜像帖。来源:北邮人论坛 / python / #23375同步于 2019/2/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
【问题】参数类型和返回值类型相同的函数是monad吗?
Zelda
2019/2/1镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
条件是显然的吧,f(x)=f(id(x))=id(f(x)),f(f.f(x)) = f.f(f(x))。
其实我不确定的是,这个函数算不算functor。
【 在 cocoyimasa 的大作中提到: 】
: 如果能证明满足monad的三个条件那就是。自己证明下。haskell书里都有。
嗯嗯,是我想错了,这个函数还是object到object的态射,不能看作包含这个object的范畴的态射。所以在这里面,函子还是identity functor。
我还有另外一个问题啊,如果只有一个object的范畴是幺半范畴,那岂不是任意一个只包含一个自函子的范畴都是monad?所以对于任意一个functor,只要实现了正确的composition(product)运算,那它一定是monad了?
按照这个思路,monad应该实现的方法是M a->M b->(a->b->c)->M c才更合理?
【 在 nuanyangyang 的大作中提到: 】
: monad什么时候成了函数了?