我有一个很难理解这个例子中的观点:期货Clojure中
(let [result (future (println "this prints once")
(+ 1 1))]
(println "deref: " (deref result))
(println "@: " @result))
注意,字符串“这个打印一次”确实只打印一次,即使你两次解除未来。这表明未来的身体只运行一次,结果2被缓存。
我不明白;该字符串将打印一次,即使不提领未来。这个例子应该教什么?
最可能的仅仅是一个简单的事实,即未来只评估一次,而多个解除引用操作不会触发重新执行。 – zero323