Я с трудом понимая смысл этого примера:Futures в Clojure
(let [result (future (println "this prints once")
(+ 1 1))]
(println "deref: " (deref result))
(println "@: " @result))
Обратите внимание, что строка «печатается один раз» действительно печатает только один раз, даже если вы разыгрывать будущее дважды. Это показывает, что тело будущего бежало только один раз, а результат - 2.
Я не понимаю; строка будет печататься один раз даже без разыменования будущего. Что должен преподавать этот пример?
Скорее всего, не что иное, как простой факт, что будущее оценивается только один раз, а несколько операций разыменования не вызывают повторного выполнения. – zero323