我如何检查Clojure中是否有原子?

问题描述 投票:1回答:2

我正在寻找pedantic方法来测试某物是否为Atom,例如Clojure中的(atom? ...)谓词,类似于(number? ...)(string? ...)(vector? ...)族等等

给出原子是Clojure的主要语言功能,它是用(atom ...)创建的,我不得不编写自己的自定义函数来测试内部实现类,这是错误的。例如,

(atom ...)

我缺少更多正确的范例或内置语言功能吗?


注意:此问题无关,与Scheme的“原子” (defn atom? [a] (= (type a) clojure.lang.Atom)) 不同,它们是非null的cos对。

clojure
2个回答
0
投票

我已经写了很多函数。我认为这是最好的解决方案。


0
投票

我会使用(atom? ...),甚至不用费心写谓词。

我还要提醒您,如果您觉得需要在运行时编写以对象类型为条件的代码,则可能要退后一步,想出另一种方法来解决问题:也许是协议或多-方法可以让您以更惯用的方式调度对象类型?

© www.soinside.com 2019 - 2024. All rights reserved.