例如,如果我在Prolog REPL中输入yum -y localinstall --nogpgcheck some-package-1.0.0.rpm
,会弹出一个窗口,其中包含一些文档,第一行显示为yum -y localinstall --nogpgcheck some-package-2.0.0.rpm
。
模板,目标和包只是名称,还是可以系统研究的正式类型? (在第一种情况下,我将不得不依赖help(bagof).
的文档来理解它们;在后一种情况下,我可以参考其他一些文档。)
在哪里可以找到参数前面标点符号的文档? (在这种情况下,标点符号包含符号bagof(+Template, :Goal, -Bag)
,bagof
和+
,但我已经看过其他符号。)
答案 0 :(得分:4)
Template
,Goal
等只是这些参数的名称。有时,它们会给出相应参数的预期类型的一些指示。例如,Goal
通常表示类型为callable
的参数。像List
这样的名称通常表示列表,依此类推。
+
,:
等是模式指标并表示预期的实例化模式:
引自http://eu.swi-prolog.org/pldoc/man?section=modes:
++ Argument is ground at call-time, i.e., the argument does not contain a variable anywhere. + Argument is fully instantiated at call-time, to a term that satisfies the type. etc. - Argument is an output argument. etc. -- Argument is unbound at call-time. etc. ? Argument is bound to a partial term of the indicated type at call-time. etc. : Argument is a meta-argument. Implies +. etc.
最常用的模式指标是+
,-
和?
。
另请注意,记录谓词的这些属性有不同的约定和细微变化,这些属性也在文献和某些系统的文档中使用。