Cómo usar refs en Clojure – Resuelto

Los refs en Clojure nos permiten coordinar el acceso a los datos mutables en un contexto transaccional.

Crear un ref

Podemos crear un ref utilizando ref:

(def r (ref 0))

Modificar un ref dentro de una transacción

Para modificar un ref de manera segura, usamos dosync dentro de una transacción:

(dosync (ref-set r 10))