变量在Clojure中是不可变的.所以你不应该试图改变它的价值foo,而是"创造"一个新的foo:
(def foo2 (+ foo 0.1))
Run Code Online (Sandbox Code Playgroud)
...或者,如果在循环中,使用新值重复:
(loop [foo 5.0]
(when (< foo 9)
(recur (+ foo 0.1))))
Run Code Online (Sandbox Code Playgroud)
...或者,如果foo是一个原子,swap!它有一个新值:
(def foo (atom 5.0))
(swap! foo (partial + 0.1))
Run Code Online (Sandbox Code Playgroud)
我建议你先阅读Clojure的基本原理.