作为业余爱好者,我缺乏一些基本知识。在过去的几天里,我一直在读一些东西,“谓词”这个词不断出现。我非常感谢有关这个问题的解释。
答案 0 :(得分:46)
谓词的定义可以在here等各种来源在线找到:
一个逻辑表达式,其计算结果为TRUE或FALSE,通常用于指示代码中的执行路径。
答案 1 :(得分:34)
一个真或假的陈述。在编程中,它通常是一个为某些输入返回布尔值的函数。
最常见的(我猜)在高阶函数的上下文中使用。例如。 filter
是许多语言中的函数,它将谓词和列表作为参数,并返回谓词为true的列表中的项目。 / p>
javascript中的示例:
lessThanTen = function(x) { return x < 10; }
[1,7,15,22].filter(lessThanTen) --> [1,7]
函数lessThanTen
是这里的谓词,它应用于列表中的每个项目。当然,布尔表达式可以用作谓词代替函数,例如filter(true)
将返回完整列表,filter(false)
为空列表。
答案 2 :(得分:17)
谓词不仅仅是一个计算结果为true或false的表达式,还有更多。术语“谓词”用于表示确定某事是真还是假的表达式。或者换句话说,它会进行断言并根据它返回true或false。
例如(在C#中):
/*this is a predicate, as it's sole purpose is to make some
assertion about something.*/
bool IsNameBob(string name)
{
return name == "Bob";
}
/*Whereas this is not a predicate, as it's performing an action
then evaluating to true if it succeeds. */
bool DoSomethingCool() {
try
{
ImDoingSomethingCool();
}
catch
{
return false;
}
return true;
}
我理解我在这里所说的纯粹是语义上的差异,但这就是这个问题的正确性吗?语义?
答案 3 :(得分:4)
导致布尔 1 值的基本评估。它通常指代表示此类评估的函数或对象。
1:布尔值松散使用,不一定是指声明为bool
或boolean
的变量。
答案 4 :(得分:4)
在非编程方面; 一个问题。通常情况下,占位符的一般问题(如 it 和他们)可以被问到许多事情。
答案 5 :(得分:3)
首先让我们看一下常规词典,看看谓词的含义是什么:
牛津美国词典(1980):
<磷>氮。句子的一部分,用于说明语法主题,“生命短暂”中的“短”
这是另一句话:“约翰很高。”谓词“很高”。如您所见,它会修改或描述主题,另一个与predicate
类似的术语是adjective
。从本质上讲,它是一个修饰语。
IBM的技术glossary提供了几个定义,但最适合的是这一个:
用作过滤器一部分的表达式,由数据项,运算符和值
组成
以下是使用SQL的示例:
SELECT name
FROM tableA
WHERE name = "john";
此代码中的谓词为name = "john"
。它包含IBM定义的所有组件,也适用于谓词的常规定义。主题为name
,谓词为name = "john"
。
答案 6 :(得分:2)
返回布尔值的函数。谓词在功能和面向对象编程中被广泛使用,以从数据结构中选择值的子集,尤其是列表和其他集合。您可以在Haskell和Smalltalk的标准库中找到大量示例。
答案 7 :(得分:2)
考虑概念的语法含义来推断编程概念可能是有用的。
在传统语法中,谓词是 a的两个主要部分之一 句子(另一个是主语, 谓词修饰的)。为了 简单的句子“John [is yellow],” 约翰充当主题,而且是 黄色充当谓词,a 随后对主题的描述 以动词为首。
在当前的语言语义中,a 谓词是一个可以表达的表达式 真实的东西。就这样 表达“是黄色的”或“就像是 西兰花“对那些东西都是真的 黄色或像西兰花, 分别。这个概念很紧密 与谓词的概念有关 在形式逻辑中,包括更多 表达式比前者更像, 例如,名词和某些类型的 形容词。
用逻辑术语来说:
返回逻辑的运算符 无论是真还是假。
答案 8 :(得分:1)
我不知道我是否在正确的语境中说话,但C#中有一个Predicate
类,它本质上是一个委托,给定一个项目,确定该对象是否符合一个集合标准。
例如,以下类型Predicate<int>
的方法可用于选择大于5的所有整数:
public bool MyPredicate(int x)
{
return x > 5;
}
我不确定这是如何转化为更一般的情况,但这是一个开始。有关详细信息,请click here。
答案 9 :(得分:1)
来自 C ++ Primer 5th (第10.3.1节):
谓词是可以调用的表达式,它返回一个可用作条件的值。
也在“ 定义的术语”部分中:
谓词:该函数返回可以转换为
bool
的类型。
答案 10 :(得分:0)
也有些相关,有与数据库相关的谓词:
答案 11 :(得分:0)
最好的S.O.我发现,关于谓词的答案在duplicate question.
上总而言之,在自然语言中,谓词是描述主题的句子部分。
简高个
简是主题,is tall
是谓语。
在计算机科学中,我们对断言某个主题的事实不感兴趣,而只是测试某些事物是真还是假。
jane.isTall();
这里简是一个带有谓词方法的对象,该对象将返回true或false。