Переключить логическое в hashmap - PullRequest
0 голосов
/ 27 марта 2019

Следующее работает, но чувствует / кажется неправильным. Есть ли лучший способ?

dev:cljs.user=> (def x (atom {:v true}))
#'cljs.user/x
dev:cljs.user=> (swap! x assoc-in [:v] (not (:v @x)))
{:v false}
dev:cljs.user=> (swap! x assoc-in [:v] (not (:v @x)))
{:v true}

Ответы [ 2 ]

2 голосов
/ 27 марта 2019
cljs.user=> (def x (atom {:v true}))
#'cljs.user/x
cljs.user=> (swap! x update :v not)
{:v false}
cljs.user=> @x
{:v false}
1 голос
/ 27 марта 2019
(let [a (atom {:v true})]
    (swap! a update-in [:v] not)
    @a)
=> {:v false}

или вы можете использовать призрак:

(transform [ATOM :v] not a)
...