我已經搜索了對此的解釋,但沒有找到一個。在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
應處理這兩種情況下,如果可以接受。