我已经开始学习Clojure,正在阅读有关结构共享的内容.我在以下场景中感到困惑:以下定义的序列中的clojure代码在REPL中输入:
1)(def a [1 2 3]),
2)(def b a),
3)(def a (conj a 4)),
4)(def b (conj b 5)),
在第4步之后,a和b将共享前三个元素的结构,还是在执行第4步时复制所有值?如果结构是共享的,那么Clojure如何能够在索引3处返回值?
这有点与Clojure中的结构共享有关,但我仍然感到困惑.任何形式的帮助将不胜感激.
clojure ×1