7
具有Join()而不是Bind()的单子
Monad通常以return和交替解释bind。但是,我认为您也可以bind根据join(和fmap?)实现 在缺乏一流功能的编程语言中bind,使用起来非常尴尬。join另一方面,看起来很简单。 但是,我不确定我是否了解join工作原理。显然,它具有[Haskell]类型 加入:: Monad m => m(mx)-> mx 对于清单monad来说,这显然是微不足道的concat。但是对于一般的monad而言,此方法实际上在做什么?我看到了它对类型签名的作用,但是我试图弄清楚如何用Java或类似语言编写类似的内容。 (实际上,这很容易:我不会。因为泛型已损坏。;-)但从原理上讲,问题仍然存在...) 哎呀。似乎以前有人问过这个问题: Monad加入功能 可能有人勾画出使用普通的单子一些实现return,fmap和join?(也就是说,一点也不提>>=。)我认为这也许可以帮助它沉入我的愚蠢大脑中……