我已经搜索了对此的解释,但没有找到一个。在Prolog谓词的描述中,有时在变量名前面加上问号,加号和减号是什么意思?问号,加上,减去前面的Prolog变量名称
实施例:
predicate(?Variable1,+Variable2,-Variable3)
我已经搜索了对此的解释,但没有找到一个。在Prolog谓词的描述中,有时在变量名前面加上问号,加号和减号是什么意思?问号,加上,减去前面的Prolog变量名称
实施例:
predicate(?Variable1,+Variable2,-Variable3)
?
含义:这个变量可以被实例化,也可以不被实例化。两种方式都是可能的。+
表示:该变量是输入的谓词。因此它必须被实例化。-
表示:该变量是输出的谓词。它通常是非实例化的,但可能是您想要检查特定的“返回值”。来源:SWI Prolog文档的第4章。
+
意味着Variable2
预计将结合的(一个术语,或也许仅仅是一些变量) - 可以认为这是输入到predicate/3
,其中谓词将不会尝试修改执行。
-
意味着Variable3
预计将通过predicate/3
在它的执行势必 - 你可以认为这是输出从predicate/3
。这并不意味着不能被绑定,但是,特别是如果您知道期望什么并正在检查成功,但predicate/3
被描述为潜在地绑定(统一)Variable3
某事。
?
意味着Variable1
可以要么束缚(+
,输入)否(-
,输出) - predicate/3
应处理这两种情况下,如果可以接受。