0
如果我有以下規則:它爲什麼不停下來?
test(X, Y, abc) :- X=='true' ; Y =='true'.
和我進行查詢,如:test(true, true, X).
爲什麼會輸出X = abc ?
兩次?
| ?- test(true, true, X).
X = abc ? n
X = abc ? n
no
不應該只回答一次嗎?
不應該發現X == true,然後停止,因爲如果只有一個條件爲真,那麼整個條件是真的?
'test(true,true,abc)'成功兩次,因爲你的規則說如果'X == true'或'Y == true'就是true。所以它以兩種不同的方式成功。 Prolog將向您展示所有解決方案。 – lurker
...並且你總是可以寫'true'來代替'true' – false