2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!有关此工作的更多信息,请参阅关于 页面。

+2
Spec
重新标记

[org.clojure/clojure "1.11.0-alpha2"]
clojure.spec.alpha

重演(参见 keys 内的 or

(s/def :x/foo int?)
(s/def :x/bar string?)

(s/form (s/keys :req-un [(or :x/foo :x/bar)]))
; => (clojure.spec.alpha/keys :req-un [(or :x/foo :x/bar)])

(s/form (s/and (s/keys :req-un [(or :x/foo :x/bar)])))
;=> (clojure.spec.alpha/and (clojure.spec.alpha/keys :req-un [(clojure.core/or :x/foo :x/bar)]))

强制 or 在第一个 form 中有命名空间的方法吗?

1 个回答

+1

已选择
 
最佳回答

或者这里只是一个在 spec 语言中理解的符号,它并不是对 clojure.core/or 函数的引用。这没有在形式中命名空间是有意为之。

by
当`keys`被`and`包裹时,它不应该有命名空间吗?
by
哦,这是正确的 - 我认为第二个是错误的。
...