如何使用clojure.zip将子级添加到树中?
考虑以下代码如何使用clojure.zip将子级添加到树中?,clojure,clojurescript,Clojure,Clojurescript,考虑以下代码 (def v (z/vector-zip [1 [2 [3 4]]])) 其中z指clojure.zip 现在,我如何从向量v中创建 [1 [2 [3 [4 5]]]] 是否使用clojure.zip API中的函数?那么从 (-> v ... 只需使用功能edit (defn edit "Replaces the node at this loc with the value of (f node args)" [loc f & args]
(def v (z/vector-zip [1 [2 [3 4]]]))
其中z指clojure.zip
现在,我如何从向量v中创建
[1 [2 [3 [4 5]]]]
是否使用clojure.zip API中的函数?那么从
(->
v
...
只需使用功能
edit
(defn edit
"Replaces the node at this loc with the value of (f node args)"
[loc f & args]
(replace loc (apply f (node loc) args)))
范例
(-> v
(z/down)
(z/right)
(z/down)
(z/right)
(z/down)
(z/right)
(z/edit #(do [% 5]))
(z/root))
结果将是
=> [1 [2 [3 [4 5]]]]
好的,现在明白了。谢谢。假设最初的树是[1[2[3[4[5[6 7]]].[]].[]]]等,最多可以说是99或更多,而不是[1[2[3[4 5]]]。。。等待关于这一点,我将提出一个新问题。