小编Dev*_*las的帖子

如何在 Clojure 中拆分原子?

我有一个存储在原子中的集合,就像这样

(def numbers (atom #{1 2 3 4 5}))
Run Code Online (Sandbox Code Playgroud)

使用swap!. 在一个单独的线程中,我想要一个函数,从集合中提取和删除偶数并返回它们。

我可以这样做的一种方法是:

(let [{even true odd false} (group-by even? @numbers)]
  (reset! numbers odd)
  even)
Run Code Online (Sandbox Code Playgroud)

但是,这不是原子操作。numbers可以在group-by和之间变化reset!。有没有办法以原子方式执行此操作?

clojure

3
推荐指数
1
解决办法
176
查看次数

标签 统计

clojure ×1