0

假设我有一个事实,例如:

bigger(cat,mouse).

如果我想向某人描述这一点,我是否正确地说“猫是这个事实中的第一个术语,而鼠标是第二个术语”,还是我将猫和老鼠称为原子并说“猫是第一个事实中的原子,鼠标是第二个”。

4

3 回答 3

1

您的第一个描述是公平的,将“术语”作为递归数据结构:即术语是原子、数字或结构,其中结构是“名称(arg1,arg2,...)”,每个参数是一个术语。

所以你的第二个描述更准确(受限)。

正如其他答案所指出的,“参数”是结构化术语中位置标识属性的通常命名。

于 2012-01-18T07:32:27.947 回答
0

争论将是我认为的完美词。但通常要描述一个谓词,你会使用以下形式:

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.
于 2012-01-18T00:31:01.040 回答
0

稍微混淆一下,我可能会说是和bigger之间的二元关系。catmouse

于 2012-01-19T15:48:16.407 回答