data-structures scala clojure persistent

data structures - Persistentes estructuras de datos en Scala



data-structures clojure (4)

Las estructuras de datos inmutables de Scala son persistentes, en el sentido de que el valor anterior se mantiene mediante una operación de "actualización". De hecho, no sé de la diferencia entre inmutable y persistente; para mí, los dos términos son alias.

Dos de las 2.8 estructuras de datos inmutables de Scala son vectores y hash tries, representados como árboles de 32 arios. Estos fueron diseñados originalmente por Phil Bagwell, quien estaba trabajando con mi equipo en EPFL, luego adoptado por Clojure, y ahora finalmente adoptado por Scala 2.8. La implementación de Scala comparte una raíz común con la implementación Clojure, pero ciertamente no es un puerto de la misma.

¿Son todas las estructuras de datos inmutables en Scala persistentes? Si no, ¿cuáles de ellos son y cuáles no? ¿Cuáles son las características de comportamiento de aquellos que son persistentes? Además, ¿cómo se comparan con las estructuras de datos persistentes en Clojure?


List, Vector, HashMap y HashSet persisten en Scala 2.8. Existen otras estructuras de datos persistentes, pero que cubren todos los usos principales, no estoy seguro de que tenga sentido enumerarlos todos.


Para la última parte de su pregunta, recuerdo que Rich Hickey mencionó en una presentación que las estructuras de datos de Clojure han sido transferidas a Scala. Además, Michael Fogus menciona los planes para que Scala 2.8 adopte algunas de las estructuras de datos de Clojure en esta entrevista .

Lo siento, esto es tan corto en detalles ... No estoy seguro de cuál es el estado en los planes Scala 2.8 mencionados anteriormente, pero recordé que Rich y Michael mencionaron esto y pensaron que podría ser una cosa interesante para que buscaras en Google si estás interesado