考虑以下代码
(def v (z/vector-zip [1 [2 [3 4]]]))
其中z指的是clojure.zip。
现在,我如何从v创建矢量
[1 [2 [3 [4 5]]]]
使用API中的函数来实现clojure.zip?所以从
开始(->
v
...
答案 0 :(得分:3)
只需使用函数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]]]]