data-structures functional-programming clojure finger-tree

data structures - ¿Para qué debería usar los dedos de Clojure?



data-structures functional-programming (1)

2-3 árboles de dedo se describen en un documento de Ralf Hinze y Ross Paterson . Proporcionan no solo una descripción completa de la estructura de datos en sí, sino varios ejemplos de cómo se puede usar ... en Haskell. La mayoría de las características que describen ya están disponibles en la biblioteca de Clojure, pero la documentación simplemente no está allí todavía.

Voy a presentar los dedos de Clojure en Clojure Conj este fin de semana.

Actualización: ahora hay algunos ejemplos que se muestran en http://github.com/clojure/data.finger-tree#readme

Actualización: diapositivas de la charla: https://github.com/Chouser/talk-finger-tree/blob/master/finger-trees.pdf

Actualización: video de la charla: http://www.youtube.com/watch?v=UXdr_K0Lwg4

El nuevo grupo de bibliotecas contrib de Clojure tiene una library árbol de dedo . ¿Cuáles son los casos de uso para los árboles de dedo en Clojure? ¿Cuándo se deben utilizar los árboles con los dedos en lugar de una de las otras estructuras de datos permanentes de Clojure: vectores, conjuntos, mapas, persistentqueues, etc.

The Joy of Clojure menciona que los árboles Finger se pueden utilizar para colecciones indexadas donde se requieren inserciones y eliminaciones baratas. También han sido descritos como la "navaja suiza de estructuras de datos". Ejemplos de esto serían muy apreciados.