Atómicamente establece el valor del átomo en el nuevo valor si y solo si el valor actual del átomo es idéntico al valor anterior que tenía el átomo. Devuelve verdadero si ocurre un conjunto, de lo contrario, devuelve falso.
Sintaxis
A continuación se muestra la sintaxis.
(compare-and-set! atom-name oldvalue newvalue)
Parameters- 'atom-name' es el nombre del átomo cuyo valor debe restablecerse. 'oldvalue' es el antiguo valor actual del átomo. 'newvalue' es el nuevo valor que debe asignarse al átomo.
Return Value - El átomo con el nuevo valor se establecerá solo si el valor anterior se especifica correctamente.
Ejemplo
En el siguiente programa se muestra un ejemplo de cómo se usa.
(ns clojure.examples.example
(:gen-class))
(defn example []
(def myatom (atom 1))
(println @myatom)
(compare-and-set! myatom 0 3)
(println @myatom)
(compare-and-set! myatom 1 3)
(println @myatom))
(example)
Salida
El programa anterior producirá el siguiente resultado.
1
1
3