BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #23375同步于 2019/2/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

【问题】参数类型和返回值类型相同的函数是monad吗?

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