如何阅读 Prolog 文档?

Jef*_*own 4 prolog interpretation

例如,如果我help(bagof).在 Prolog REPL 中键入,则会弹出一个窗口,其中包含一些文档,其中第一行显示bagof(+Template, :Goal, -Bag).

  1. 参数 Template、Goal 和 Bag 只是名称,还是可以系统研究的正式类型?(在第一种情况下,我将不得不依靠 的文档bagof来理解它们;在后一种情况下,我将能够参考其他一些文档。)

  2. 我在哪里可以找到参数前面的那些标点符号的文档?(在这种情况下,标点符号包括符号+,:-,但我见过其他的。)

mat*_*mat 6

TemplateGoal等等。只是名称的这些论点。有时,它们会给出有关相应参数的预期类型的一些指示。例如,Goal通常表示类型为 的参数callable。名称 likeList通常表示一个列表,等等。

+:等是模式指示符和表示所述预期实例化图案:

引自http://eu.swi-prolog.org/pldoc/man?section=modes

++ 参数在调用时是固定的,即参数在任何地方都不包含变量。
+ 参数在调用时完全实例化,满足类型的术语。等等。
- 参数是输出参数。等等。
-- 参数在调用时未绑定。等等。
? 参数在调用时绑定到指定类型的部分术语。等等。
: 参数是元参数。表示 +。
等等。

最常用的模式指示器是+-?

另请注意,在文献和某些系统的文档中也使用了不同的约定和细微的变化来记录谓词的此类属性。