2012-12-06 106 views
2

我試圖讓Prolog(SWI Prolog專門)感到滿意。Prolog不返回預期值

我有這個非常簡單的清單:

animal(bear). 
animal(mouse). 
animal(bird). 

現在,每當我問爲滿足所有原子(什麼是正確表達?)謂詞 動物,我總是隻得到第一個。

?- animal(X). 
X = bear . 

雖然所有三個原子的動物評估爲'真'。

?- animal(mouse). 
true. 

?- animal(bird). 
true. 

我在做什麼錯?這種行爲是否可以通過一些設置來控制?

+0

按分號鍵','得到進一步的答案。 – gusbro

回答

0

你的代碼沒有錯。 Prolog是一個推理機器。因此它試圖找到滿足所有變量的第一個解決方案。 找到解決方案後,將其打印出來。

現在,如果您需要其他解決方案,應該有一些組合,您應該輸入以便prolog將繼續搜索。 如果我沒有記錯它可能是一個分號......

希望這有助於

+0

非常感謝馬克。分號正在完成這項工作:) –

+0

空間完成相同的工作。 – joel76