如何创建Clojure拉链

如何创建Clojure拉链,clojure,zipper,Clojure,Zipper,如何使用Clojure Zipper(vector zip)创建以下图形: 我试过了 (vector-zip ["A" ["B" "C" "D"["E" "F"]] ]) 它回来了 [["A" ["B" "C" "D" ["E" "F"]]] nil] 它是对的吗?是的,它是对的。代码的一些测试: (require '[clojure.zip :as zip]) (def zv (zip/vector-zip ["A" ["B" "C" "D"["E" "F"]]])) (-> z

如何使用Clojure Zipper(
vector zip
)创建以下图形:

我试过了

(vector-zip ["A" ["B" "C" "D"["E" "F"]] ])
它回来了

[["A" ["B" "C" "D" ["E" "F"]]] nil]

它是对的吗?

是的,它是对的。代码的一些测试:

(require '[clojure.zip :as zip])

(def zv (zip/vector-zip ["A" ["B" "C" "D"["E" "F"]]]))

(-> zv zip/next) ; => ["A" {:l [], :pnodes [["A" ["B" "C" "D" ["E" "F"]]]], :ppath nil, :r (["B" "C" "D" ["E" "F"]])}]

(-> zv zip/next zip/node) ; => "A"

(-> zv zip/next zip/next zip/next zip/node) ; => "B"

(-> zv zip/next zip/next zip/children) ; => ("B" "C" "D" ["E" "F"])
我试过
(矢量压缩[“A”[“B”“C”“D”[“E”“F”]])
。它返回
[[A][B”“C”“D][E”“F][]nil]
。是这样吗?你能简单解释一下吗@cfrick
(require '[clojure.zip :as zip])

(def zv (zip/vector-zip ["A" ["B" "C" "D"["E" "F"]]]))

(-> zv zip/next) ; => ["A" {:l [], :pnodes [["A" ["B" "C" "D" ["E" "F"]]]], :ppath nil, :r (["B" "C" "D" ["E" "F"]])}]

(-> zv zip/next zip/node) ; => "A"

(-> zv zip/next zip/next zip/next zip/node) ; => "B"

(-> zv zip/next zip/next zip/children) ; => ("B" "C" "D" ["E" "F"])