🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 谓词 Clojure 提供了很多函数来充当谓词的功能 — 测试条件是否成立。它们的返回值是 true或者false。在Clojure里面 `false` 以及 `nil` 被解释成false. `true` 以及任何其他值都被解释成true, 包括0。谓词函数的名字一般以问号结尾。 反射是一种获取一个对象的特性,而不是它的值的过程。比如说对象的类型。有很多谓词函数进行反射。 测试一个对象的类型的谓词包括 `class?` , `coll?` , `decimal?` , `delay?` , `float?` , `fn?` , `instance?` , `integer?` , `isa?` , `keyword?` , `list?` , `macro?` , `map?` , `number?` , `seq?` , `set?` , `string?` 以及 `vector?` 。 一些非谓词函数也进行反射操作,包括: `ancestors` , `bases` , `class` , `ns-publics` 以及 `parents` 。 测试两个值之间关系的谓词有: `<` , `<=` , `=` , `not=` , `==` , `>` , `>=` , `compare` , `distinct?` 以及 `identical?` . 测试逻辑关系的谓词有: `and` , `or` , `not` , `true?` , `false?` 和 `nil?` 测试集合的一些谓词在前面已经讨论过了,包括: `empty?` , `not-empty` , `every?` , `not-every?` , `some?` 以及 `not-any?` . 测试数字的谓词有 `even?` , `neg?` , `odd?` , `pos?` 以及 `zero?` .