Clojure - conmutar

Commute también se usa para cambiar el valor de un tipo de referencia al igual que alter y ref-set. La única diferencia es que esto también debe colocarse dentro de un bloque 'dosync'. Sin embargo, esto se puede utilizar siempre que no sea necesario saber qué proceso de llamada cambió realmente el valor del tipo de referencia. Commute también usa una función para cambiar el valor de la variable de referencia.

Sintaxis

A continuación se muestra la sintaxis.

(commute refname fun)

Parameters- 'refname' es el nombre de la variable que contiene el valor de referencia. 'divertido' es la función que se utiliza para cambiar el valor del tipo de referencia.

Return Value - La referencia y su nuevo valor correspondiente.

Ejemplo

En el siguiente programa se muestra un ejemplo de cómo se usa.

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (ref 0))
   
   (defn change [counter]
      (dosync
         (commute counter inc)))
   (change counter)
   (println @counter)
   
   (change counter)
   (println @counter))
(Example)

Salida

El programa anterior produce la siguiente salida.

1
2