问号,加上,减去前面的Prolog变量名
我已经找到了一个解释,但没有找到一个。在Prolog谓词的描述中,有时在变量名之前的问号、加号和减号是什么意思 例如:问号,加上,减去前面的Prolog变量名,prolog,Prolog,我已经找到了一个解释,但没有找到一个。在Prolog谓词的描述中,有时在变量名之前的问号、加号和减号是什么意思 例如: predicate(?Variable1,+Variable2,-Variable3) +意味着Variable2应该被绑定(绑定到一个术语,或者可能只是某个变量)——您可以将其视为谓词/3的输入,谓词在执行时不会尝试修改它 -意味着Variable3在它的执行中被谓词/3绑定——您可以将其视为谓词/3的输出。然而,这并不意味着它不能被绑定,特别是当您知道要期望什么并且正在检
predicate(?Variable1,+Variable2,-Variable3)
+
意味着Variable2
应该被绑定(绑定到一个术语,或者可能只是某个变量)——您可以将其视为谓词/3
的输入,谓词在执行时不会尝试修改它
-
意味着Variable3
在它的执行中被谓词/3
绑定——您可以将其视为谓词/3
的输出。然而,这并不意味着它不能被绑定,特别是当您知道要期望什么并且正在检查是否成功时,但是谓词/3
被描述为潜在地绑定(统一)变量3
?
意味着变量1
可以绑定(+
,输入)也可以不绑定(-
,输出)谓词/3应该处理这两种情况,如果它接受任何一种情况。
表示:此变量可以实例化,也可以不实例化。这两种方法都是可能的?
表示:此变量是谓词的输入。因此,它必须被实例化+
表示:此变量是谓词的输出。它通常是非实例化的,但如果要检查特定的“返回值”,则可能是非实例化的-