Clojure 的新 contrib 库组有一个手指树 库。clojure 中手指树的用例是什么?何时应该使用手指树而不是 clojure 的其他持久数据结构之一:向量、集合、映射、持久队列等。
Clojure的喜悦提到手指树可用于需要廉价插入和删除的索引集合。它们也被描述为“数据结构的瑞士军刀”。这方面的例子将不胜感激。
Ralf Hinze 和 Ross Paterson在一篇论文中描述了 2-3 个手指树。它们不仅提供了数据结构本身的完整描述,还提供了如何在 Haskell 中使用它的几个示例。他们描述的大多数特性已经在 Clojure 库中可用,但是文档还没有。
我将在本周末的Clojure Conj上介绍 Clojure 手指树。
更新:现在有一些示例显示在http://github.com/clojure/data.finger-tree#readme
更新:演讲幻灯片:https ://github.com/Chouser/talk-finger-tree/blob/master/finger-trees.pdf