我有一棵结构未知的树。首先,我想找到一个包含一串文本“Something”的节点。然后,在识别字符串在树中的位置之后,我想要更新相对于字符串位置的的不同节点。数据是一个深度嵌套的地图,包含多个列表分支。
拉链可以吗?
我研究了这种编辑树的方法:http://www.exampler.com/blog/2010/09/01/editing-trees-in-clojure-with-clojurezip/。问题是,我事先没有知道字符串的位置。
答案 0 :(得分:7)
是的!这正是设计用于拉链的任务拉链。
zip/path
以找出您相对于根的位置。 zip/up
,zip/down
,zip/left
等来转到要修改的节点。 zip/root
以获取包含这些更改的新地图。