【发布时间】:2014-02-03 22:12:24
【问题描述】:
假设我有一个事实,例如:
bigger(cat,mouse).
如果我想向某人描述这一点,我是否正确地说“猫是这个事实中的第一个词,鼠标是第二个词”,或者我是否将猫和老鼠称为原子并说“猫是事实中的第一个原子,而鼠标是第二个”。
【问题讨论】:
假设我有一个事实,例如:
bigger(cat,mouse).
如果我想向某人描述这一点,我是否正确地说“猫是这个事实中的第一个词,鼠标是第二个词”,或者我是否将猫和老鼠称为原子并说“猫是事实中的第一个原子,而鼠标是第二个”。
【问题讨论】:
您的第一个描述是公平的,“术语”是一种递归数据结构:即术语是原子、数字或结构,其中结构是“名称(arg1,arg2,...)”,每个参数都是一个术语。
所以你的第二个描述更准确(受限)。
正如其他答案所述,“参数”是结构化术语中位置标识属性的通常命名。
【讨论】:
argument 是我认为的完美词。但通常要描述一个谓词,你会使用以下形式:
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 之间的二元关系。
【讨论】: