2013-03-10 59 views
0

我正在嘗試創建知識庫。我的問題有gate/1terminal/1,我已經定義了以下規則:無法理解Prolog運算符優先級錯誤

我想說的是:「如果存在一個柵極G和終端T,那麼這意味着G是不相等以T爲不等於1不等於0

我得到以下錯誤:ERROR: c:/noob.pl:140:0: Syntax error: Operator priority clash

我甚至不知道我是否使用了正確的運營商

回答

1

的問題是在

G \== T \== 1 \== 0 

應書面

G \== T, G \== 1, G \== 0, T \== 1, T \== 0 
+0

感謝的作品。爲了簡單起見,我忽略了一些不相同的符號。所有這些都包含在內,它變成了一個非常長的語句:0 – karancan 2013-03-10 22:39:35

+0

@karancan:有多個值應該不同,值得使用'setof':'List = [G,T,0, 1],setof(List,Set),長度(List,N),長度(Set,N)。' – 2013-03-10 22:42:06

+0

我應該研究一下。我還有一個問題要問 - 我希望你不要介意。我有一個事實:'連接(A,B): - 連接(B,A)'。然後,當我問「連接(X,Y)」這個問題時,我得到了無限多的結果(無限遞歸)。我只想要一個可交換的規則。你能指導我嗎? – karancan 2013-03-10 22:45:22