Clojure 集合与并发编程实用指南
1. 特定领域的拉链辅助函数
在通用拉链函数的基础上,我们可以创建特定领域的辅助函数,例如 wrap 函数:
(defn wrap
"Wraps the current node in the specified tag and attributes."
([loc tag]
(z/edit loc #(vector tag %)))
([loc tag attrs]
(z/edit loc #(vector tag attrs %))))
下面是一个使用示例:
(def h [:body [:h1 "Clojure"]
[:p "What a wonderful language!"]])
(-> h html-zip z/down z/right z/down (wrap :b) z/root)
; 输出: [:body [:h1 "Clojure"] [:p [:b "What a wonderful language!"]]]
2. 自定义只读拉链
创建嵌套数据结构的自定义拉链并不困难。此外,我们还可以在以非层次方式存储的层次数据上创建只读拉链,例如迷宫。以下是创建迷宫拉链的步骤:
1. 创建迷宫 :
超级会员免费看
订阅专栏 解锁全文
511

被折叠的 条评论
为什么被折叠?



