Sé cómo funcionan los mapas mutables normales (usando hashtables), y sé cómo funcionan las listas inmutables (listas recursivas vinculadas) y su ventaja sobre las listas mutables (tiempo constante que se agrega sin estropear el original) pero ¿cómo se hacen los mapas inmutables (por ejemplo, Scala) ¿trabajo?¿Qué tipo de estructura de datos se usa para los mapas inmutables?
Conozco la ventaja de no jugar con el mapa original al generar nuevos mapas, pero ¿cómo funciona la estructura de datos subyacente y qué tipo de características de rendimiento tienen, por ejemplo, en comparación con las tablas hash variables? ¿Hay alguna estructura de datos estándar que las personas usen para implementar estas, que podría buscar en CLRS/wikipedia?
CLRS, y casi todos los demás libros de texto estructura de datos/algoritmo están fuertemente * * sesgados hacia la mutabilidad y la impureza. Chris Okasaki * literalmente * escribió el libro sobre las estructuras de datos funcionales, que se basa en una extensión de su trabajo de tesis anterior. Otras obras que deberías mirar son de Phil Bagwell y Rich Hickey. –