我应该用Clojure的指树做什么?

时间:2010-10-19 21:30:02

标签: data-structures functional-programming clojure finger-tree

Clojure的新的contrib库组有一个finger tree library。在clojure中手指树有什么用例?什么时候应该使用手指树而不是clojure的其他持久性数据结构之一:向量,集合,映射,持久性等等。

Joy of Clojure提到Finger树可用于需要廉价插入和删除的索引集合。它们也被描述为“数据结构的瑞士军刀”。非常感谢这方面的例子。

1 个答案:

答案 0 :(得分:27)

paper by Ralf Hinze and 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

更新:演讲视频:http://www.youtube.com/watch?v=UXdr_K0Lwg4