我希望能够在树数据结构中进行插入(比如在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)
以某种简洁/优雅的方式。
或者:解决问题的简单方法是什么?
答案 0 :(得分:3)
如果您正在寻找功能树编辑(编辑neste数据结构),那么也许是 zipper library是正确的工具。
答案 1 :(得分:0)
我意识到clojure.walk库中有很好的功能可以解决这个问题。 http://clojuredocs.org/clojure_core/clojure.walk