![](/img/trans.png)
[英]What does it mean when gprolog says “true?” instead of “yes” in this instance?
[英]When does Prolog prompts 'yes' and when does it says 'true'
我在Prolog中寫了以下知識庫:
likes(yamini,chocolate).
likes(anuj,apple).
likes(yamini,book).
likes(john,book).
likes(john,france).
現在,當我查閱上述文件並嘗試以下命令時:
| ?- likes(anuj,apple).
(1 ms) yes
| ?- likes(yamini,chocolate).
true ? ;
no
我想了解 Prolog 何時回復“是”與何時回復“真”。
這是頂層(Prolog 命令行)實現的產物。 顯然,當它可以證明一個目標並且不確定是否可能有更多解決方案時,您的實現是true
的。 如果確定只有一種解決方案,它會說yes
。
以下是 SWI-Prolog 的作用:
?- likes(anuj,apple).
true.
Prolog 可以成功證明目標likes(anuj,apple)
並且肯定沒有其他方法可以證明它,否則會看到如下內容:
?- member(X,[1,2]).
X = 1 ;
X = 2.
其中使目標為真的X
已被發現為1
,但可能還有其他解決方案。 確實有,即2
。
回到我們的例子:
?- likes(yamini,chocolate).
true.
output 取決於您使用的頂層。 看來您正在使用 GProlog。 當查詢成功並且沒有剩余選擇點(沒有其他可能的解決方案)時,它將 output yes
。
當查詢成功時它會回答true
,但還有其他可能的解決方案需要檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.