Me pregunto si hay una implementación de un mapa que es:Implementación eficiente de mapas inmutables?
- Inmutable, de modo que pueda utilizarlo en programación funcional, y sin esfuerzo garantizar transacciones y concurrencia.
- Rápido. Revisé Binary Search Trees (RB, AVL) y Tries, pero ninguno parecía tan rápido como Hash Tables. ¿Hay una implementación de mapa que admita el tiempo constante para actualizaciones y recuperaciones? (O al menos muy rápido tiempo logarítmica)
En pocas palabras, ¿hay una estructura de datos funcional que pueda compararse con Hash Maps en el rendimiento?
Muchas gracias por su útil respuesta. Voy a ver a Clojure pronto. – Phil
Los mapas inmutables de Clojure usan intentos mapeados en matriz de hash de 32 vías (http://en.wikipedia.org/wiki/Hash_array_mapped_trie). Son una gran estructura de datos, casi tan rápida como un HashMap mutable, pero con todas las ventajas de ser persistente e inmutable. – mikera