2010-07-12 56 views
85

具體而言,我已經看到它用於文本過濾的上下文中。就好像「謂詞」==「過濾標準」。在計算機科學的背景下,謂詞是什麼意思?

這是準確的嗎?

+0

聲音像'predicate'是2個單詞,'pre'和其他的混合,暗示它在做別的事情之前檢查某些東西。問題是,我找不到任何東西來建立我的假設。無論如何,它可以是一個很好的暗示:) – 2016-09-04 09:02:40

回答

71

這是一個在數學邏輯領域最常用的術語。

wikipedia

在數學中,謂詞可以是一個關係或布爾值函數即相當於特性函數或這樣的關係的指示功能。

一個函數P:X→{真,假}稱爲X上的謂詞當P是X上的一個謂詞,有時我們說P是X.

的屬性。

「謂」 ==「過濾標準」

+0

我會改變「一定程度」到「完全相同」,因爲人們可以過濾或不過濾,這意味着一個布爾函數,即謂語。 – 2010-07-24 17:25:51

+4

這是在理論和編程實踐中用於計算機科學。謂詞作爲獲取參數的函數,並返回布爾值。如果參數*匹配謂詞*,即函數名稱過濾器,則返回true。示例:isBlue(arg),這裏是Java謂詞接口 - > https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html – 2015-10-07 18:40:33

35

這個詞來自邏輯。

謂詞是關於輸入的「is」布爾問題。

「IsNull」是一個謂詞問題。

此外,維基百科的鏈接大約Predicates in Math

12

謂詞是一個關於東西是真或假的陳述。

+0

@ user1907906'我會描述'部分只是絨毛,但其餘部分當然構成了答案。這裏沒有批評或澄清要求。 – EJP 2015-09-07 10:36:48

81

謂詞(「PRED-I-CAT」)是包含動詞,並告訴你一些有關這一主題的句子的一部分。

例如,在句子

「邁克是吃」,我們的主題,「邁克」,和謂語,「吃」。

在計算機科學的背景下,我們沒有興趣在陳述一個事實,而是在測試真/假條件來決定是否做一些事情的目的。

Person mike; 

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

mikeisEating()構件(的Person一個實例)是謂詞。它返回truefalse以斷定person(在這種情況下爲mike)正在吃東西。謂詞被用來決定是否餵養這個人。

謂語通常用在回調的形式存在,但一般我們可以使用術語,是指基於斷言的真實性評價返回一個布爾值的任何功能。

的分類,可能希望有成員函數

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

爲我們的謂語。如果x跟在我們後面,我們的排序算法將交換兩個成果。

還有術語謂詞(predi-KATE)。在英文中,我們使用如下形式:

「畢業的成績取決於達到成績。」

這意味着一件事取決於另一件事。

在計算機科學中,我們使用這種形式的詞來描述條件執行。

例如,在CUDA編程中,有彙編指令的執行,我們可以根據先前的結果預測(KATE)。也就是說,您設置了一個謂詞(CAT)標誌,如果爲true,則會導致指令被執行,如果爲false,則會將該指令視爲NOP。因此,指令的執行是基於指示的謂詞標誌。

這些用途非常相似。

希望有所幫助。

+9

IMO,這是最好的答案 – 2015-11-17 16:05:09

+0

我真的很喜歡你解釋這個的方式。 – 2016-03-25 02:06:39

4

主張:

  • 要麼肯定設置爲真或假
  • 不依賴於參數
  • 例如值
    • 「X + 2 = 2×,當x = -2」=>真
    • 「2 * 2 = 5」=>假

謂詞:

  • 真值取決於參數的值
  • eg
    • 「X + 2 = 2X」=>真值是未知的,並且依賴於x的值

使用的量詞變換謂詞命題:

  • ∃ x(x + 2 = 2x)「在整數集合中存在一個x + 2 = 2x的斧子」
3

只是爲了簡化事情。謂詞是一個返回true或false值的函數。

它用作「過濾標準」的含義:讓我們考慮一個數組數組 和謂詞,如果number> 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是一個基於謂詞(或「過濾條件」)返回新數組的函數。)

它已過濾基於謂詞的值

  • 真陣列:包括值
  • false:不包括它
1

謂詞是一個函數,它的一個元件作爲輸入參數並返回true或false。謂詞用於更高階的函數,以元素的形式應用於給定的函數(a.k.a變換器)到元素列表並返回結果列表。變壓器是一種適用於每個元件的功能,並將產生一個或多個新的元件。