如何使用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]]]。。。等待关于这一点,我将提出一个新问题。