Clojure中的所有变量都是常量吗?

Cra*_*hax 3 clojure

是否可以选择在Clojure中为符号赋值,然后重新分配相同的符号?我现在看到的是Clojure中的所有变量都是不变的.这样对吗?

Thu*_*ail 6

  • 本地名称可以反弹:
  • (全局)符号可以反弹.
  • 有几种口味的东西(通常)可以绑定一个符号,其内容是可变的:

最后这些都有不同的特点和目的.

上面:

注意 - 您不能分配函数参数或本地绑定.在Clojure中只有Java字段,Vars,Refs和Agents是可变的.

重新绑定本地名称的示例:

(let [coll (range)
      coll (rest coll)
      coll (filter odd? coll)
      coll (take 5 coll)]
  coll)
;(1 3 5 7 9)
Run Code Online (Sandbox Code Playgroud)