在计算机科学的语境中,“谓词”是什么意思?

具体来说,我在文本过滤的上下文中看到过它的使用,就像“谓词”= = “过滤条件”一样。

准确吗?

83338 次浏览

这个词来自逻辑。

谓词是一个关于输入的布尔问题。

“ IsNull”是一个谓语问句。

此外,维基百科上关于 数学中的谓语的链接。

它是数学逻辑领域中最常用的术语。

来自 维基百科

在数学中,谓词要么是相当于这种关系的特征函数的指示函数,要么是相当于这种关系的基数的 关系或布尔值函数

函数 P: X →{ true,false }称为 X 上的谓词。当 P 是 X 上的谓词时,我们有时会说 P 是 X 的一个性质。

.

“谓词”= = “筛选条件”

谓词是关于真或假的事物的陈述。

谓词(“ PRED-i-cat”)是句子中包含动词的部分,它告诉你关于主语的一些信息。

例如,在句子中

“ Mike 在吃东西”我们有主语“ Mike”和谓语“正在吃东西”。

在计算机科学的背景下,我们对陈述事实不感兴趣,而是对测试一个真/假条件来决定是否要做某事感兴趣。

Person mike;


if (!mike.isEating())
feedPerson(mike);

mike(Person的实例)的 isEating()成员是谓词。它返回 truefalse断言 person(在本例中为 mike)正在进食。谓词被用来决定是否喂这个人。

谓词通常以回调的形式出现,但是一般来说,我们可以将这个术语用于任何基于对断言的真值求值而返回布尔值的函数。

对于排序,可能需要具有成员函数

bool Fruit::ComesAfter(Fruit x) ...

如果 ABc0跟着我们,我们的排序算法就会交换这两个水果。

还有谓词(predi-KATE) ,在英语中我们是这样使用的:

“成绩合格才能毕业”

这意味着一件事取决于另一件事。

在计算机科学中,我们用这种形式的单词来描述条件执行。

例如,在 CUDA 编程中,有一些汇编指令的执行我们可以断言(KATE)在先前的结果。也就是说,设置一个谓词(CAT)标志,如果该标志为 true,则执行该指令; 如果为 false,则将该指令视为 NOP。因此,指令的执行是以指定的谓词标志为基础的。

用途非常相似。

希望能帮上忙。

建议:

  • 要么肯定设置为 true 要么设置为 false
  • 不依赖于参数的值
    • “ x + 2 = 2x,当 x = -2”= > true
    • “2 * 2 = 5”= > false

谓语:

  • 真值取决于参数的值
    • “ x + 2 = 2x”= > 真值是未知的,取决于 x 的值

使用量词将谓语转换为命题:

  • Z (x + 2 = 2x)“在整数集合中存在一个 x 使得 x + 2 = 2x”

只是为了简化事情。 谓词是根据某些条件返回真或假值的函数。

它被用作“过滤条件”的意思 让我们考虑一个数字数组和一个谓词,如果数字 > 0,返回 true,否则返回 false。

function predicate(number){
return number > 0
}
// array of numbers
var numbers = [-2 , -1 , 0 , 1 , 2];


var newNumbers = numbers.filter(predicate);


// newNumbers => [1 , 2] ;

Filter 是一个基于谓词(或“过滤条件”)返回新数组的函数

它根据谓词的值对数组进行了过滤

  • 包含价值
  • 假: 不包括它

谓词是一个将一个元素作为输入参数并返回 true 或 false 的函数。谓词用在高阶函数中,以元素的方式应用于给定函数(又称为转换器)的元素列表,并返回结果列表。变压器是一个应用于每个元素的函数,它将产生一个或多个新元素。