【发布时间】:2011-03-25 02:02:44
【问题描述】:
我正在阅读 Programming Clojure 一书。在解释alter 和 STM 时,他们说如果在更改期间,Clojure 检测到来自事务外部对 ref 的更改,它将使用新值重新运行事务。如果是这种情况,我想您传入的更新函数需要是纯函数,但文档中没有说明(并且在其他类似情况下也是如此)。
那么我的假设正确吗?如果不是,STM如何重新应用该功能?如果正确,是不是就不能靠文档告诉你什么时候可以有副作用,什么时候不能?
【问题讨论】: