Clojure - ¡Los átomos se comparan y configuran!

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