2010-07-12 52 views
85

具体而言,我已经看到它用于文本过滤的上下文中。就好像“谓词”==“过滤标准”。在计算机科学的背景下,谓词是什么意思?

这是准确的吗?

+0

声音像'predicate'是2个单词,'pre'和其他的混合,暗示它在做别的事情之前检查某些东西。问题是,我找不到任何东西来建立我的假设。无论如何,它可以是一个很好的暗示:) – 2016-09-04 09:02:40

回答

71

这是一个在数学逻辑领域最常用的术语。

wikipedia

在数学中,谓词可以是一个关系或布尔值函数即相当于特性函数或这样的关系的指示功能。

一个函数P:X→{真,假}称为X上的谓词当P是X上的一个谓词,有时我们说P是X.

的属性。

“谓” ==“过滤标准”

+0

我会改变“一定程度”到“完全相同”,因为人们可以过滤或不过滤,这意味着一个布尔函数,即谓语。 – 2010-07-24 17:25:51

+4

这是在理论和编程实践中用于计算机科学。谓词作为获取参数的函数,并返回布尔值。如果参数*匹配谓词*,即函数名称过滤器,则返回true。示例:isBlue(arg),这里是Java谓词接口 - > https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html – 2015-10-07 18:40:33

35

这个词来自逻辑。

谓词是关于输入的“is”布尔问题。

“IsNull”是一个谓词问题。

此外,维基百科的链接大约Predicates in Math

12

谓词是一个关于东西是真或假的陈述。

+0

@ user1907906'我会描述'部分只是绒毛,但其余部分当然构成了答案。这里没有批评或澄清要求。 – EJP 2015-09-07 10:36:48

81

谓词(“PRED-I-CAT”)是包含动词,并告诉你一些有关这一主题的句子的一部分。

例如,在句子

“迈克是吃”,我们的主题,“迈克”,和谓语,“吃”。

在计算机科学的背景下,我们没有兴趣在陈述一个事实,而是在测试真/假条件来决定是否做一些事情的目的。

Person mike; 

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

mikeisEating()构件(的Person一个实例)是谓词。它返回truefalse以断定person(在这种情况下为mike)正在吃东西。谓词被用来决定是否喂养这个人。

谓语通常用在回调的形式存在,但一般我们可以使用术语,是指基于断言的真实性评价返回一个布尔值的任何功能。

的分类,可能希望有成员函数

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

为我们的谓语。如果x跟在我们后面,我们的排序算法将交换两个成果。

还有术语谓词(predi-KATE)。在英文中,我们使用如下形式:

“毕业的成绩取决于达到成绩。”

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

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

例如,在CUDA编程中,有汇编指令的执行,我们可以根据先前的结果预测(KATE)。也就是说,您设置了一个谓词(CAT)标志,如果为true,则会导致指令被执行,如果为false,则会将该指令视为NOP。因此,指令的执行是基于指示的谓词标志。

这些用途非常相似。

希望有所帮助。

+9

IMO,这是最好的答案 – 2015-11-17 16:05:09

+0

我真的很喜欢你解释这个的方式。 – 2016-03-25 02:06:39

4

主张:

  • 要么肯定设置为真或假
  • 不依赖于参数
  • 例如值
    • “X + 2 = 2×,当x = -2”=>真
    • “2 * 2 = 5”=>假

谓词:

  • 真值取决于参数的值
  • eg
    • “X + 2 = 2X”=>真值是未知的,并且依赖于x的值

使用的量词变换谓词命题:

  • ∃ x(x + 2 = 2x)“在整数集合中存在一个x + 2 = 2x的斧子”
3

只是为了简化事情。谓词是一个返回true或false值的函数。

它用作“过滤标准”的含义:让我们考虑一个数组数组 和谓词,如果number> 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是一个基于谓词(或“过滤条件”)返回新数组的函数。)

它已过滤基于谓词的值

  • 真阵列:包括值
  • false:不包括它
1

谓词是一个函数,它的一个元件作为输入参数并返回true或false。谓词用于更高阶的函数,以元素的形式应用于给定的函数(a.k.a变换器)到元素列表并返回结果列表。变压器是一种适用于每个元件的功能,并将产生一个或多个新的元件。