Clojure - pendolarismo
Commute viene utilizzato anche per modificare il valore di un tipo di riferimento proprio come alter e ref-set. L'unica differenza è che anche questo deve essere inserito in un blocco "dosync". Tuttavia, questo può essere utilizzato ogni volta che non è necessario sapere quale processo chiamante ha effettivamente modificato il valore del tipo di riferimento. Commute utilizza anche una funzione per modificare il valore della variabile di riferimento.
Sintassi
Di seguito è riportata la sintassi.
(commute refname fun)
Parameters- "refname" è il nome della variabile che contiene il valore di riferimento. 'fun' è la funzione che viene utilizzata per modificare il valore del tipo di riferimento.
Return Value - Il riferimento e il suo nuovo valore corrispondente.
Esempio
Un esempio di come viene utilizzato è mostrato nel seguente programma.
(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)
Produzione
Il programma precedente produce il seguente output.
1
2