Clojure - 谓词
谓词是评估条件并提供 true 或 false 值的函数。 我们已经在数字章节的示例中看到了谓词函数。 我们见过像"even?"这样的函数,用于测试数字是否为偶数,或者"neg?",用于测试数字是否大于零。 所有这些函数都返回 true 或 false 值。
以下是 Clojure 中谓词的示例。
(ns clojure.examples.example (:gen-class)) ;; This program displays Hello World (defn Example [] (def x (even? 0)) (println x) (def x (neg? 2)) (println x) (def x (odd? 3)) (println x) (def x (pos? 3)) (println x)) (Example)
上面的程序产生以下输出。
true false true true
除了普通的谓词函数之外,Clojure 还提供了更多谓词函数。 以下方法可用于谓词。
序号 | 方法和说明 |
---|---|
1 | every-pred
采用一组谓词并返回一个函数"f",如果其所有组成谓词都针对其所有参数返回逻辑真值,则该函数返回 true,否则返回 false。 |
2 | every?
如果谓词对于每个值都为 true,则返回 true,否则返回 false。 |
3 | some
返回值集合中 x 的任何谓词值的第一个逻辑真值。 |
4 | not-any?
如果集合中值的任何谓词逻辑上为 true,则返回 false,否则返回 true。 |