作为一个业余爱好者,我缺乏一些基础知识.在过去的几天里,我一直在读一些东西,"谓词"这个词不断出现.我非常感谢有关这个问题的解释.
谓词的定义可以在各种来源(例如此处)在线找到,它是:
一个逻辑表达式,其计算结果为TRUE或FALSE,通常用于指示代码中的执行路径.
参考:软件测试.马修海登
声明是真还是假.在编程中,它通常是一个为某些输入返回布尔值的函数.
最常见的(我猜)在高阶函数的上下文中使用.Eg filter
是许多语言中的函数,它将谓词和列表作为参数,并返回谓词为true的列表中的项.
javascript中的示例:
lessThanTen = function(x) { return x < 10; } [1,7,15,22].filter(lessThanTen) --> [1,7]
函数lessThanTen
是这里的谓词,它应用于列表中的每个项目.当然,布尔表达式可以用作谓词代替函数,例如filter(true)
将返回完整列表,filter(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; }
我理解我在这里所说的纯粹是语义上的差异,但这个问题是关于什么的呢?语义?