Для чего мне использовать пальчиковые деревья 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

Другие вопросы по тегам