当前位置: 首页 > 文档资料 > Clojure 中文教程 >

谓词(Predicates)

优质
小牛编辑
131浏览
2023-12-01

Predicates是评估条件并提供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还为谓词提供了更多的函数。 以下方法可用于谓词。

Sr.No.方法和描述
1every-pred

获取一组谓词并返回一个函数'f',如果其所有组合谓词都针对其所有参数返回逻辑真值,则返回true,否则返回false。

2every?

如果谓词对于每个值都为true,则返回true,否则返回false。

3some

返回值集合中x的任何谓词值的第一个逻辑true值。

4not-any?

如果集合中值的任何谓词在逻辑上为真,则返回false,否则返回true。