data-structures - 我应该使用 Clojure 的手指树做什么?

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

Clojure 的新 contrib 库组有一个 finger tree library 。 Clojure 中手指树的用例有哪些?何时应该使用手指树来代替 clojure 的其他持久数据结构之一:向量、集合、映射、持久队列等。

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

最佳答案

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

关于data-structures - 我应该使用 Clojure 的手指树做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3972952/

相关文章:

c++ - 来自 std::vector<std::function> 的函数组合

algorithm - 寻找第k小的元素数据结构

data-structures - 如何识别 Prolog 术语的浪费表示

c++ - 以下 C++ 代码行是什么意思?

c# - C++:数据类型为函数的 map 语法?

clojure - 如何获取序列的倒数第二个元素?克洛尤尔

java - 从路径文件到独特的数据结构

functional-programming - Kotlin中如何用动态编程实现纯函数?

ide - 无法在 clojure 中使用 org.joda 时间

clojure - Clojure中Seq函数的使用