Резьбовые комментарии в Clojure - PullRequest
4 голосов
/ 12 марта 2012

Я хотел бы иметь возможность делать вставки в древовидной структуре данных (например, в комментариях к 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 ]

3 голосов
/ 12 марта 2012

Если вы хотите выполнить функциональное редактирование дерева (редактирование вложенных структур данных), то, возможно,
библиотека застежек-молний - правильный инструмент.

0 голосов
/ 15 марта 2012

Я понимаю, что в библиотеке clojure.walk есть очень хорошая функциональность, которая может помочь.http://clojuredocs.org/clojure_core/clojure.walk

...