Prolog:谓词/变量中的 - 前缀是什么?

时间:2013-12-11 16:26:04

标签: prolog prefix

示例:

conditions([-on(a, b)]).

我已经不知疲倦地搜索了这个和+前缀的含义。你是我最后的希望。

1 个答案:

答案 0 :(得分:2)

没有提供上下文,所以我想这可能来自文档中的内容。

如果您阅读Prolog手册(SWI,Gnu或其中任何一个)中的介绍材料,他们会描述这些惯例。 +-?用作文档中的约定,用于指示变量是输入还是输出或变量(或者)。例如,来自Gnu Prolog手册:

+:必须实例化参数。

-:参数必须是变量(如果内置谓词成功,将被实例化)。

?:可以实例化参数或变量。

因此,例如,atom_length/2被描述为;

atom_length(+atom, ?integer)

这意味着您必须提供atom(它不能是变量),integer可以是变量(在这种情况下atom_length将提供值)或它可以被实例化(在这种情况下atom_length将指示您的查询是真还是假)`。

在这种意义上,您通常不会在代码中使用-+,除非您真的打算将其作为学期的一部分。考虑到给定的示例,看起来它可能是该术语的预期部分:

conditions([-on(a, b)]).

列表参数由完整拼写的术语组成-(on(a,b))-/1,参数为on/2)。这里的-没有提供任何功能,它只是添加了结构(结构是名为-和参数on(a,b)的术语。)