Cómo trabajar con estructuras de datos inmutables en Clojure – Resuelto

En Clojure, las estructuras de datos son inmutables por defecto. Esto significa que, en lugar de modificar directamente una estructura, creamos una nueva con los cambios deseados.

Uso básico de estructuras inmutables

Por ejemplo, podemos crear una lista inmutable y luego agregarle un nuevo elemento:

(def mi-lista '(1 2 3))
(def nueva-lista (cons 0 mi-lista)) ;; (0 1 2 3)

Trabajando con mapas inmutables

Del mismo modo, los mapas en Clojure son inmutables. Si queremos agregar o modificar un valor, creamos un nuevo mapa:

(def mi-mapa {:a 1 :b 2})
(def nuevo-mapa (assoc mi-mapa :c 3)) ;; {:a 1 :b 2 :c 3}

Beneficios de la inmutabilidad

La inmutabilidad ofrece una mayor seguridad en los programas concurrentes, ya que no hay necesidad de preocuparse por los cambios en estructuras de datos compartidas.