Mac*_*iek 64 language-agnostic
作为一个业余爱好者,我缺乏一些基础知识.在过去的几天里,我一直在读一些东西,"谓词"这个词不断出现.我非常感谢有关这个问题的解释.
Jac*_*esB 38
声明是真还是假.在编程中,它通常是一个为某些输入返回布尔值的函数.
最常见的(我猜)在高阶函数的上下文中使用.Eg filter是许多语言中的函数,它将谓词和列表作为参数,并返回谓词为true的列表中的项.
javascript中的示例:
lessThanTen = function(x) { return x < 10; }
[1,7,15,22].filter(lessThanTen) --> [1,7]
Run Code Online (Sandbox Code Playgroud)
函数lessThanTen是这里的谓词,它应用于列表中的每个项目.当然,布尔表达式可以用作谓词代替函数,例如filter(true)将返回完整列表,filter(false)即空列表.
Ben*_*esh 18
谓词不仅仅是一个评估为真或假的表达式,还有更多.术语"谓词"用于表示确定某事是真还是假的表达式.或者换句话说,它会进行断言并根据它返回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;
}
Run Code Online (Sandbox Code Playgroud)
我理解我在这里所说的纯粹是语义上的差异,但这个问题是关于什么的呢?语义?
在非编程方面;一个问题。通常是一个带有占位符的一般性问题(比如it和them),可以询问很多事情。