有人了解 函数式语言的 Monad 概念么

作者 shooter 所属板块 问答
最近看 haskell, 终于遇到了不可越过的 [monad](http://www.ruanyifeng.com/blog/2015/07/monad.html) 概念。 wadler说 `一个单子(Monad)说白了不过就是自函子范畴上的一个幺半群而已` 咂么了好久, 不解其意 大家能 说说各自对 Monad的理解么
3 回复
  • jiyinyiyong 发表
    简单说就是用一个类型或者函数作为容器将数据封装起来, 然后外部进行操作, 大致对应 flatMap, 比如说列表, 数据封装成 `[1 2]`, 函数封装成, `(fn [n] [(+ n 1)])` 调用之后得到, `[2 3]`, 好处是调用样子容器还是那个样子, 方便后面其他的操作继续, 甚至进行组合.
  • bareilles 发表
    自函子范畴上的一个幺半群而已。。。。。。 什么是 自函子范畴 。什么是 幺半群。瞎了。欺负我们代数没学好的呀。
  • aemaeth 发表
    额……其实Monad应该从‘andThen’的角度去理解……它不过是对在Functor上的不同计算过程在进行组合而已……