Для чего мне использовать пальчиковые деревья Clojure?
В новой группе библиотек Contribute в Clojure есть библиотека дерева пальцев. Каковы случаи использования пальчиков в clojure? Когда следует использовать деревья пальцев вместо одной из других постоянных структур данных clojure: векторов, множеств, карт, постоянных очередей и т. Д.
Joy of Clojure упоминает, что деревья Finger могут использоваться для индексированных коллекций, где требуются дешевые вставки и удаления. Они также были описаны как "швейцарский армейский нож структур данных". Примеры этого будут очень цениться.
1 ответ
Деревья в 2-3 пальца описаны в статье Ральфа Хинце и Росса Патерсона. Они предоставляют не только полное описание самой структуры данных, но и несколько примеров того, как ее можно использовать... в Haskell. Большинство описываемых ими функций уже доступны в библиотеке Clojure, но документации просто еще нет.
В эти выходные я представлю пальчики Clojure на Clojure Conj.
Обновление: теперь есть несколько примеров, показанных по адресу http://github.com/clojure/data.finger-tree
Обновление: слайды из выступления: https://github.com/Chouser/talk-finger-tree/blob/master/finger-trees.pdf
Обновление: видео выступления: http://www.youtube.com/watch?v=UXdr_K0Lwg4