Clojure - scambio di atomi!

Sostituisce atomicamente il valore dell'atomo con uno nuovo basato su una particolare funzione.

Sintassi

Di seguito è riportata la sintassi.

(swap! atom-name function)

Parameters- 'atom-name' è il nome dell'atomo il cui valore deve essere ripristinato. 'funzione' è la funzione che viene utilizzata per generare il nuovo valore dell'atomo.

Return Value - L'atomo con il nuovo valore verrà impostato in base alla funzione fornita.

Esempio

Un esempio di come viene utilizzato è mostrato nel seguente programma.

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def myatom (atom 1))
   (println @myatom)
   
   (swap! myatom inc)
   (println @myatom))
(example)

Produzione

Il programma precedente produce il seguente output.

1
2

Dal programma sopra puoi vedere che il file ‘inc’(Increment function) si usa per incrementare il valore dell'atomo e con l'aiuto dello swap! funzione, il nuovo valore viene automaticamente associato all'atomo.