如何创建 Clojure 拉链

2024-04-23

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

   A
 / | \      
B  C  D
     / \
    E   F

我努力了

(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"])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建 Clojure 拉链 的相关文章

随机推荐