2012-10-17 41 views

回答

13

這是該函數在其簽名中所期望的參數個數。注意中綴操作符,它們可以接受多個參數,即使它們被調用的方式是將它們放在參數之間。也就是說,你可以想象普通的加法,+,作爲一個二元運算符。因此A+B+(A,B)確實相同,這意味着您將定義++/2

+4

注意到問題的海報:這有時也被稱爲謂詞的arity。 –

+0

@DavorinRuševljan...請告訴我什麼是'Arity'! –

+2

謂詞的參數數目。我提到過它,因爲在閱讀Prolog時你會經常發現這個詞。 –

2

我引用了'序言:標準:參考手冊'的第8頁(當^ googled'序言謂詞指示符'時)。

謂詞指示器...它的形式名稱的接地術語/元數

的ISO內置算符/ 3訪問這種數據

?- functor(append(a,b,c),Name,Arity). 
Name = append, 
Arity = 3. 
2

作爲EMS和查克莫寺廟解釋這個數表示參數的數量。在文檔中找到這個數字的原因是因爲具有相同名稱和不同參數(參數數量)的謂詞是不同的謂詞。

因此斷言:

my_predicate/3 

是不同的謂詞:

my_predicate/4 

和數量包括給予明確的指示,有關哪一個他們正在談論。

相關問題