当前位置:  开发笔记 > 编程语言 > 正文

什么是谓词?

如何解决《什么是谓词?》经验,为你挑选了3个好方法。

作为一个业余爱好者,我缺乏一些基础知识.在过去的几天里,我一直在读一些东西,"谓词"这个词不断出现.我非常感谢有关这个问题的解释.



1> aehlke..:

谓词的定义可以在各种来源(例如此处)在线找到,它是:

一个逻辑表达式,其计算结果为TRUE或FALSE,通常用于指示代码中的执行路径.

参考:软件测试.马修海登


这个答案只是部分正确.谓词更具体.这个定义就像是说"藏书家"的定义是读书的人.当藏书家这个词提供的细节远不止于此.
@blesh你能详细说明具体是什么吗?

2> JacquesB..:

声明是真还是假.在编程中,它通常是一个为某些输入返回布尔值的函数.

最常见的(我猜)在高阶函数的上下文中使用.Eg filter是许多语言中的函数,它将谓词列表作为参数,并返回谓词为true的列表中的项.

javascript中的示例:

lessThanTen = function(x) { return x < 10; }
[1,7,15,22].filter(lessThanTen) --> [1,7]

函数lessThanTen是这里的谓词,它应用于列表中的每个项目.当然,布尔表达式可以用作谓词代替函数,例如filter(true)将返回完整列表,filter(false)即空列表.


是的,但由于谓词可能依赖于变量,因此将其视为一种函数可能更为自然.

3> Ben Lesh..:

谓词不仅仅是一个评估为真或假的表达式,还有更多.术语"谓词"用于表示确定某事是真还是假的表达式.或者换句话说,它会进行断言并根据它返回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;
}

我理解我在这里所说的纯粹是语义上的差异,但这个问题是关于什么的呢?语义?

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有