Results 3 comments of ant

因为您的书,使用了相当通俗而且可视化的方式来描述单子,所以有些困惑需要您的帮助才能更好的理解。我很喜欢您的这本书。 下面也是一篇讲monad与副作用的。 http://zhuoqiang.me/what-is-monad.html 在接触了monad,接触了纯函数,副作用后,有点似懂非懂,需要有一个东西,一个指导性的设计过程,在这个过程中,把这几个概念全部串起来,体现出这些东西来。 就好像上面的例子一样,打印玩家信息,变成了一个纯函数,把需要打印出来的玩家信息,封装在了一个io接口里,但是并不运行。 这就好像是redux-saga中yield call (action,paras),一样,call只是一个描述,描述有一个action要做,有什么参数,但是怎么做,则交给redux-saga的框架来完成。从而使得generator的内容可以被测试。 虽然我已经有点儿明白了,但此时也只是看到一个不纯的函数,是如何变成一个纯函数,可是最后一步的输出,在哪里?也没有看到单子在哪里?

monid{ S: Maybe, Maybe[maybe], Maybe[Maybe[Maybe]]等等元素, 二元运算符:flat 幺元:return } 谁修正,说明一下?

对于单子上的(S,M,1)来讲 * -> * 映射 函数,构成S集合元素, . 是函数之间的复合运算符,两个入参都是函数,输出也是函数 return 也是S集合上的一个元素,这个函数是单位元 这样理解是否正确?