什么是clojure交换的最佳方式!一个原子,如果它没有?

时间:2016-06-07 17:14:40

标签: clojure

假设我原子初始设置为0。 我想初始化它,只有先前没有初始化,

我现在拥有的:

(swap! atom #(if % % (initialize)))

然而,这对我来说并不像是惯用语。

必须有更可读的方式吗?

1 个答案:

答案 0 :(得分:6)

通常,您可以使用fnil来避免首先进行初始化检查。例如,(swap! counts update word (fnil inc 0))表示在计数中增加关键字的值,但如果没有值则使用0。