Обновление атома с одним значением - PullRequest
5 голосов
/ 18 июня 2010

В моем коде есть несколько атомов, где обычно требуется обновить их до нового значения, независимо от текущего значения.

Поэтому я пишу что-то вроде этого:

(swap! atom-name (fn [_] (identity new-value)))

Это работает, но кажется довольно уродливым и, вероятно, влечет за собой снижение производительности за создание анонимного закрытия.

Есть ли лучший способ?

Ответы [ 2 ]

8 голосов
/ 18 июня 2010

Функция reset! должна сделать это.

(reset! atom-name new-value)
1 голос
/ 18 июня 2010

Вы можете использовать (сравнить и установить атом старое значение новое значение).

Но я нахожу странным, что вам нужно так сильно изменить их на некоррелированные значения. Вы не можете использовать привязки или подобные вещи.

...