谓词

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? .