簡體   English   中英

Prolog 何時提示“是”,何時提示“真”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM