2017-06-19 256 views
0

我認爲這是一個非常簡單的問題,但我仍然無法解決它。SWI Prolog等價

如何在Prolog中定義兩個方向的邏輯結果?

例如我的數據庫包含此:

need_umbrealla(X) :- rainy(X). 
rainy(X) :- need_umbrealla(X). 

它總是導致永久性的循環,如果我的要求去做

rainy(X). 

我的解釋。

我能在那裏做什麼?

感謝您的幫助=)

+3

應該是什麼'陰雨(X)'的輸出? –

+1

查看[標籤:failure-slice] – false

+2

@WillemVanOnsem當前天氣,據說是:) –

回答

1

您聲明爲陰雨變量X是需要一把傘同一個變量。什麼是X?天氣需要雨傘嗎?

你可以只聲明:
needs_umbrella(X , rainy).

與要求:

needs_umbrella(monday, rainy). 
true 

needs_umbrella(monday, sunny). 
false 
+1

謝謝,它幫助! – patrickkr