如何理解計算機科學相關里出現的「謂詞」?

看C++ Primer 也出現過「謂詞」一說,排序(sort)庫函數可以用「謂詞」來代替默認的「小於」的判別條件。

最近在看SQL 相關的書籍又講到「謂詞」,其實根據例子我大概能理解「謂詞」的作用,一個標準(判斷真假)?

但「謂詞」指的是一個表達式嗎?為什麼叫「謂詞」,總讓我聯想到語法中的謂詞,有點反直覺,其中有何關聯?求擴展解釋相關!謝謝


刷離散數學-命題邏輯與謂詞邏輯,看定義就行,轉述一下就變味了


翻譯得屎一樣。Predicate 自己查字典。


瀉藥。

這是邏輯里的謂詞概念。

你可以看微軟出版社的 TSQL查詢這本書,

前面幾章關於集合論的幾個章節有詳細介紹。


"A predicate is a function that returns bool (or something that can be implicitly converted to bool). Predicates are widely used in the STL. The comparison functions for the standard associative containers are predicates, and predicate functions are commonly passed as parameters to algorithms like find_if and the various sorting algorithms."

Effective STL 里給出的一個解釋,昨天剛看到。。。


不要試圖用經驗去理解名詞,你以後把謂詞替換成xythvcdhdzxb,這樣就會促使你去了解它的含義而不是獨自意淫了


離散數學都會講的一個詞語,簡單來說就是代入某個論域內的變數就可以產生真或假結果的表達式。

比如 x=y+3就是一個謂詞,代入(4,1)就是True,代入(0,0)就是False。


實際上是一個用於比較的函數(或函數對象),輸入兩個T類型,返回bool類型。你可以在funtional里找到很多這樣的東西,比如std::less。


這個謂詞是數理邏輯里的謂詞。

至於理解你已經差不多到位了。


為啥都覺得翻譯成謂詞不對?接受一個主語並描述這個主語的性質,這不是謂詞還能是啥?總不能直接翻譯成謂語吧?斷言?斷言不就是語氣強硬的命題嗎?

正面回答:

題主理解的沒問題,謂詞是接受一個變數,返回一個真值的函數/函項之類的東西,根據理論建立的先後定義可以不一樣。

辭彙與定義的關聯:英語里謂語(predicate)就是描述主語的東西,陳述句是命題,那去掉主語謂語就能生成真值不同的命題(不考慮其他句式),這東西就翻譯成了謂詞(predicate)。

例:謂詞IS_DOG(x)對我是假,對我的狗是真,這是系動詞的情況。謂詞USE_PC(x)對我是真,對我的狗是假,這是一般動詞的情況。

翻譯成斷言才叫反直覺呢,你把assertion放哪了?

沒學過邏輯也沒學過英語,以上全是胡說八道,不服來打我啊?


謝邀。

1. 你應該直接看英文版。

2. 不知道一個詞的定義時,不要去猜它的意思。這可不是文科。

3. 這裡的『謂詞』是『predicate』。去 bing 搜索 『predicate in C++』 就能找到答案。


其實原版寫的是predicate,要是翻翻C++官方文檔,會頻頻看到類似while(!pred){...}這樣的循環體,現在答案其實很清楚了,所謂的謂詞predicate就是判定或者判斷的意思。

但畢竟是輪子哥開了光的,他都沒意見,那就將就著看吧==


Predicates (Transact-SQL)


推薦閱讀:

我知道c語言,那a語言和b語言呢?
日本大學院畢業後去美國工作是否現實?
軟體工程師的價值來源於產品是否成功還是技術是否過硬?
量子計算實驗需要什麼理論背景?
如何看待中國建成世界首台光量子計算機?

TAG:編程語言 | SQL | 計算機科學 | CPrimer |