Buscar..


Introducción

Un átomo en Clojure es una variable que se puede cambiar a lo largo de su programa (espacio de nombres). Debido a que la mayoría de los tipos de datos en Clojure son inmutables (o inmutables), no se puede cambiar el valor de un número sin redefinirlo, los átomos son esenciales en la programación de Clojure.

Define un átomo

Para definir un átomo, use una def ordinaria, pero agregue una función de atom delante de él, así:

(def counter (atom 0))

Esto crea un atom de valor 0 . Los átomos pueden ser de cualquier tipo:

(def foo (atom "Hello"))
(def bar (atom ["W" "o" "r" "l" "d"]))

Lee el valor de un átomo

Para leer el valor de un átomo, simplemente ponga el nombre del átomo, con una @ antes de él:

@counter ; => 0

Un ejemplo más grande:

(def number (atom 3))
(println (inc @number))
;; This should output 4

Actualizar el valor de un átomo.

Hay dos comandos para cambiar un átomo, swap! y reset! . swap! recibe comandos y cambia el átomo en función de su estado actual. reset! cambia el valor del átomo por completo, independientemente de cuál sea el valor del átomo original:

(swap! counter inc) ; => 1
(reset! counter 0) ; => 0

Este ejemplo produce los primeros 10 poderes de 2 usando átomos:

(def count (atom 0))

(while (< @atom 10)
  (swap! atom inc)
  (println (Math/pow 2 @atom)))


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow