【问题标题】:What does 'predicate' mean in the context of computer science? [duplicate]在计算机科学的背景下,“谓词”是什么意思? [复制]
【发布时间】:2011-03-14 22:37:02
【问题描述】:

具体来说,我已经看到它在文本过滤的上下文中使用。好像“谓词”==“过滤条件”。

这准确吗?

【问题讨论】:

  • 听起来像predicate 是两个词的混合,pre 等等,暗示它与在做其他事情之前检查某事有关。问题是我找不到任何东西来建立我的假设。无论如何,它可以很好地暗示含义:)

标签: computer-science


【解决方案1】:

只是为了简化事情。 谓词是一个根据某些条件返回真或假值的函数。

它被用作“过滤条件”的意思 让我们考虑一个数字数组和一个谓词,如果数字 > 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 是一个函数,它根据谓词(或“过滤条件”)返回一个新数组。

它已经根据谓词的值过滤了数组

  • true : 包含值
  • false : 不包含它

【讨论】:

    【解决方案2】:

    谓词('PRED-i-cat')是句子中包含动词并告诉您有关主语的部分。

    例如,在句子中

    “Mike 正在吃东西”,我们有主语“Mike”和谓词“正在吃东西”。

    在计算机科学的背景下,我们对陈述事实不感兴趣,而是为了决定是否做某事而测试真/假条件。

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

    mikePerson 的一个实例)的成员isEating() 是一个谓词。它返回truefalse 以断言person(在这种情况下为mike)正在吃东西。谓词用于决定是否喂人。

    谓词通常以回调的形式出现,但一般来说,我们可以使用该术语来表示任何基于对断言真实性的评估返回布尔值的函数。

    对于排序,可能需要成员函数

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

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

    还有术语谓词(predi-KATE)。在英语中我们这样使用它:

    “毕业以达到及格成绩为前提。”

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

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

    例如,在 CUDA 编程中,有一些汇编指令的执行我们可以根据先前的结果来判断 (KATE)。也就是说,您设置了一个谓词 (CAT) 标志,如果为真,则导致指令被执行,如果为假,则导致指令被视为 NOP。因此,指令的执行取决于指示的谓词标志。

    用途非常相似。

    希望对您有所帮助。

    【讨论】:

    • 你真的把它读成“PRED-i-cat”而不是“PRED-ee-cat”吗?
    • 什么是“NOP”?没有手术?
    • @thorstenhirsch 发音通常不以“cat”结尾(更像是“kət”或“cut”)。另外请注意,动词的pronunciation 与名词不同。
    【解决方案3】:

    Predicate 是一个函数,它接受一个元素作为输入参数并返回真或假。谓词用于高阶函数,按元素应用于给定函数(又名转换器)到元素列表并返回结果列表。 Transformer 是一个适用于每个元素的函数,会产生一个或多个新元素。

    【讨论】:

      【解决方案4】:

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

      来自wikipedia

      在数学中,谓词是关系或布尔值函数,相当于这种关系的特征函数或指示函数。

      函数 P: X→ {true, false} 称为 X 上的谓词。当 P 是 X 上的谓词时,我们有时会说 P 是 X 的属性。

      .

      “谓词”==“过滤条件”

      【讨论】:

      • 我会将“在某种程度上”改为“完全相同”,因为可以过滤或不过滤元素,这意味着布尔函数,即谓词。
      • 这用于计算机科学,无论是在理论上还是在编程实践中。谓词作为获取参数并返回布尔值的函数。如果参数匹配谓词,即函数名称过滤器,则返回true。示例:isBlue(arg),此处为 Java 谓词接口 --> docs.oracle.com/javase/8/docs/api/java/util/function/…
      【解决方案5】:

      谓词是关于真假的陈述。

      【讨论】:

      • @user1907906 “我会描述”部分只是绒毛,但其余部分肯定构成了答案。这里没有批评或澄清请求。
      【解决方案6】:

      命题:

      • 绝对设置为真或假
      • 不依赖于参数值
      • 例如
        • "x+2=2x,当 x = -2" => 真
        • "2*2=5" => 错误

      谓词:

      • 真值取决于参数的值
      • 例如
        • "x+2=2x" =>真值未知,取决于x的值

      使用量词将谓词转换为命题:

      • ∃x∈Z (x+2=2x) "整数集合中存在一个 x 使得 x+2=2x"

      【讨论】:

        【解决方案7】:

        这个词来自逻辑。

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

        “IsNull”是谓词问题。

        另外,关于Predicates in Math 的维基百科链接。

        【讨论】:

          猜你喜欢
          • 2013-09-11
          • 2011-03-22
          • 2011-01-22
          • 1970-01-01
          • 2016-05-04
          • 2021-01-23
          • 1970-01-01
          • 2011-07-18
          • 1970-01-01
          相关资源
          最近更新 更多