如何在clojure中为一组值分配一组值

时间:2016-02-12 14:55:28

标签: clojure

如果我在Clojure中有一个查询给我一组结果,我需要将这些结果发送到一个全局变量,它是一个集合(它可能是空的或者有一个旧的值)。因此,每当我有新结果并且能够在其他地方使用它们时,我需要将结果重新分配给此全局集。任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您的全局是atom,例如

(def global (atom #{}))

然后您可以使用reset!来更改它,例如

(reset! global #{:new :value})

如果global var直接绑定到一个集合,例如

(def global #{})

您可以使用alter-var-root更新var中的值。

(alter-var-root #'global (constantly #{:new :value}))

如果您有选择,则应该使用atom