Clojure中的线索评论

时间:2012-03-12 14:54:24

标签: clojure functional-programming tree

我希望能够在树数据结构中进行插入(比如在Disqus,Hacker News等上做评论)。以巧妙的功能方式做到这一点会很好。

实施例

(def cmts [{:name "Abi" :id 1 :text "Great question" :children nil}
           {:name "Bib" :id 2 :text "What about zippers?" :children
            [{:name "Linus" :id 3 
              :text "I don't understand how to and insert 
                     children at a certain id with them"
              :children nil}]}])

问题是如何插入像这样的评论

(add-comment cmts :name "Iba" :text "I think so too!" :in-reply-to 1)

以某种简洁/优雅的方式。

或者:解决问题的简单方法是什么?

2 个答案:

答案 0 :(得分:3)

如果您正在寻找功能树编辑(编辑neste数据结构),那么也许是 zipper library是正确的工具。

答案 1 :(得分:0)

我意识到clojure.walk库中有很好的功能可以解决这个问题。 http://clojuredocs.org/clojure_core/clojure.walk