状态monad在Clojure中有意义吗?如果是这样,我会感谢状态monad比通过swap!
s或reset!
s突变Clojure原子更合适的情况。
答案 0 :(得分:1)
你不会需要它。但monad用于构建比普通状态更多的抽象。 Clojure的core.async的go宏是一个状态机,在内部它被实现为monad。你可以看一下Tim Baldridge对它的解释:https://www.youtube.com/watch?v=R3PZMIwXN_g
答案 1 :(得分:0)
如果您希望以这种方式保留代码,那么Monads是有意义的。你可以拥有一个封装状态的(monadic)函数。