【问题标题】:Find location of node in tree using Clojure zippers使用 Clojure 拉链查找树中节点的位置
【发布时间】:2014-02-01 00:05:37
【问题描述】:

我有一棵结构未知的树。首先,我想找到一个包含文本字符串“Something”的节点。然后,在确定字符串在树中的位置之后,我想更新一个不同的节点相对于字符串的位置。数据是一个深度嵌套的映射,包含多个列表分支。

拉链可以吗?

我研究过这种编辑树的方法:http://www.exampler.com/blog/2010/09/01/editing-trees-in-clojure-with-clojurezip/。问题是,我事先并不知道字符串的位置。

【问题讨论】:

    标签: clojure tree zipper


    【解决方案1】:

    是的!这正是专为这种任务设计的拉链。

    • 反复调用 zip/next 直到找到您要查找的节点。
    • 然后调用zip/path 找出您相对于根的位置。
    • 然后调用zip/upzip/downzip/left等进入节点进行修改。
    • 更新节点
    • 致电zip/root 获取包含这些更改的新地图。

    【讨论】:

    • 太棒了!这就是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    相关资源
    最近更新 更多