状态monad vs Clojure中的原子

时间:2015-11-13 22:37:55

标签: clojure monads state-monad

状态monad在Clojure中有意义吗?如果是这样,我会感谢状态monad比通过swap! s或reset! s突变Clojure原子更合适的情况。

2 个答案:

答案 0 :(得分:1)

你不会需要它。但monad用于构建比普通状态更多的抽象。 Clojure的core.async的go宏是一个状态机,在内部它被实现为monad。你可以看一下Tim Baldridge对它的解释:https://www.youtube.com/watch?v=R3PZMIwXN_g

答案 1 :(得分:0)

如果您希望以这种方式保留代码,那么Monads是有意义的。你可以拥有一个封装状态的(monadic)函数。

相关问题