我已閱讀過SO問題what does slash(/) do in prolog?和What is the meaning of predicate 「simple/1」 in Prolog (SWI-Prolog),但這些鏈接似乎無法幫助我。在Prolog中謂詞名稱之後的斜槓是什麼意思?
我正在通過一些關於Prolog的初學者教程。 短語如Solve/4
或Go/1
困惑了我。那斜線和數字是什麼意思?
我已閱讀過SO問題what does slash(/) do in prolog?和What is the meaning of predicate 「simple/1」 in Prolog (SWI-Prolog),但這些鏈接似乎無法幫助我。在Prolog中謂詞名稱之後的斜槓是什麼意思?
我正在通過一些關於Prolog的初學者教程。 短語如Solve/4
或Go/1
困惑了我。那斜線和數字是什麼意思?
這是該函數在其簽名中所期望的參數個數。注意中綴操作符,它們可以接受多個參數,即使它們被調用的方式是將它們放在參數之間。也就是說,你可以想象普通的加法,+
,作爲一個二元運算符。因此A+B
與+(A,B)
確實相同,這意味着您將定義+
與+/2
。
我引用了'序言:標準:參考手冊'的第8頁(當^ googled'序言謂詞指示符'時)。
謂詞指示器...它的形式名稱的接地術語/元數
的ISO內置算符/ 3訪問這種數據
?- functor(append(a,b,c),Name,Arity).
Name = append,
Arity = 3.
作爲EMS和查克莫寺廟解釋這個數表示參數的數量。在文檔中找到這個數字的原因是因爲具有相同名稱和不同參數(參數數量)的謂詞是不同的謂詞。
因此斷言:
my_predicate/3
是不同的謂詞:
my_predicate/4
和數量包括給予明確的指示,有關哪一個他們正在談論。
注意到問題的海報:這有時也被稱爲謂詞的arity。 –
@DavorinRuševljan...請告訴我什麼是'Arity'! –
謂詞的參數數目。我提到過它,因爲在閱讀Prolog時你會經常發現這個詞。 –