标签: clojure
假设我原子初始设置为0。 我想初始化它,只有先前没有初始化,
我现在拥有的:
(swap! atom #(if % % (initialize)))
然而,这对我来说并不像是惯用语。
必须有更可读的方式吗?
答案 0 :(得分:6)
通常,您可以使用fnil来避免首先进行初始化检查。例如,(swap! counts update word (fnil inc 0))表示在计数中增加关键字的值,但如果没有值则使用0。
fnil
(swap! counts update word (fnil inc 0))