说我有一个事实,比如极品信息:Prolog的 - 事实
bigger(cat,mouse).
如果我想描述这个的人,我会纠正说:“猫是这一事实和鼠标中的第一项是第二个术语“还是我会将猫和老鼠称为原子,并且说”猫是事实中的第一个原子,而老鼠是第二个原子“。
说我有一个事实,比如极品信息:Prolog的 - 事实
bigger(cat,mouse).
如果我想描述这个的人,我会纠正说:“猫是这一事实和鼠标中的第一项是第二个术语“还是我会将猫和老鼠称为原子,并且说”猫是事实中的第一个原子,而老鼠是第二个原子“。
你的第一描述是公平的,被“术语”的递归数据结构:即,术语或者是一个原子,一个数字,或一个结构,其中一个struct是'name(arg1,arg2,...)',每个参数都是一个术语。
所以你的第二个描述更准确(限制)。
正如其他答案指出的那样,“论证”是结构化术语中位置识别属性的通常命名。
参数将是我认为的完美单词。但通常形容一个谓语,你会使用以下形式:
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.
要混为一谈了一下,我可能会说bigger
是cat
和mouse
之间保持一个二进制的关系。