2012-01-18 100 views
0

說我有一個事實,比如極品信息:Prolog的 - 事實

bigger(cat,mouse). 

如果我想描述這個的人,我會糾正說:「貓是這一事實和鼠標中的第一項是第二個術語「還是我會將貓和老鼠稱爲原子,並且說」貓是事實中的第一個原子,而老鼠是第二個原子「。

回答

1

你的第一描述是公平的,被「術語」的遞歸數據結構:即,術語或者是一個原子,一個數字,或一個結構,其中一個struct是'name(arg1,arg2,...)',每個參數都是一個術語。

所以你的第二個描述更準確(限制)。

正如其他答案指出的那樣,「論證」是結構化術語中位置識別屬性的通常命名。

0

參數將是我認爲的完美單詞。但通常形容一個謂語,你會使用以下形式:

predicate/arity : predicate(arguments...) 
description of arguments 

這會去是這樣的:

bigger/2 : bigger(Bigger, Lesser) 
Holds if Bigger is bigger than Lesser. 

此外你可以精確的參數的模式:+輸入, - 輸出,? (而@爲純輸入),請參閱@ false在this question上的答案以獲得更多關於模式的信息(如果需要的話)。

在這裏,完整的版本可以是:

bigger/2 : bigger(?Bigger, ?Lesser) 
Holds if Bigger is bigger than Lesser. 
0

要混爲一談了一下,我可能會說biggercatmouse之間保持一個二進制的關係。