Clojure - Troca de átomos!

Atomicamente troca o valor do átomo por um novo com base em uma função específica.

Sintaxe

A seguir está a sintaxe.

(swap! atom-name function)

Parameters- 'atom-name' é o nome do átomo cujo valor precisa ser redefinido. 'função' é a função que é usada para gerar o novo valor do átomo.

Return Value - O átomo com o novo valor será definido com base na função fornecida.

Exemplo

Um exemplo de como isso é usado é mostrado no programa a seguir.

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

Resultado

O programa acima produz a seguinte saída.

1
2

No programa acima, você pode ver que o ‘inc’(Função de incremento) é usada para incrementar o valor do átomo e com a ajuda do swap! função, o novo valor é automaticamente associado ao átomo.