假设我有一个事实,例如:
bigger(cat,mouse).
如果我想向某人描述这一点,我是否正确地说“猫是这个事实中的第一个术语,而鼠标是第二个术语”,还是我将猫和老鼠称为原子并说“猫是第一个事实中的原子,鼠标是第二个”。
您的第一个描述是公平的,将“术语”作为递归数据结构:即术语是原子、数字或结构,其中结构是“名称(arg1,arg2,...)”,每个参数是一个术语。
所以你的第二个描述更准确(受限)。
正如其他答案所指出的,“参数”是结构化术语中位置标识属性的通常命名。
争论将是我认为的完美词。但通常要描述一个谓词,你会使用以下形式:
predicate/arity : predicate(arguments...)
description of arguments
这里会是这样的:
bigger/2 : bigger(Bigger, Lesser)
Holds if Bigger is bigger than Lesser.
此外,您可以精确参数的模式:+ 用于输入,- 用于输出,?对于这两者(以及 @ 纯输入),如果需要,请参阅 @false对此问题的回答以获取有关模式的更多信息。
这里的完整版本可能是:
bigger/2 : bigger(?Bigger, ?Lesser)
Holds if Bigger is bigger than Lesser.
稍微混淆一下,我可能会说是和bigger
之间的二元关系。cat
mouse