使用谓词作为规范

任何谓词函数都可以用作规范。这是一个简单的例子:

(clojure.spec/valid? odd? 1)
;;=> true

(clojure.spec/valid? odd? 2)
;;=> false

valid? 函数将采用 spec 和 value,如果值符合规范则返回 true,否则返回 false。

另一个有趣的谓词是设置成员资格:

(s/valid? #{:red :green :blue} :red) 
;;=> true