2010-09-05 66 views
3

我一直在學習序言比較兩個字符串..我使用的是名爲編輯我prol1.1.1需要編寫規則來比較兩個字符串,當我看到這樣的信息代碼在序言

rel(a1,b1). 
rel(a2,b2). 
rel(b2,c2). 

associatedWith(X,Y,Z) :- rel(X,Y),rel(Y,Z). 

?- associatedWith(X,Y,Z). 

它工作

但是當我給

?- associatedWith(X,Y,Z),X=\=Z. 

,我得到解析器異常

Parser exception [Should be evaluable ''a2''[7:31]] line 7:31 

我從網站得到的是= \ =是數值,我無法得到比較字符串值的答案..任何人都可以幫助我..

我無法獲得gui對於swi-prolog,你可以幫我嗎? 我需要使用Java程序中的call prolog,輸出必須在java中再次處理,任何人都可以請幫助我..

回答

5

您試圖比較原子,而不是字符串。無論如何,你需要\ =

?- aaa = aaa. 
true. 

?- aaa \= aaa. 
false. 

?- aaa \= aab. 
true. 
+6

實際上,對於不等式的術語來說,它更常見的是「\ +(A == B)」或「A \ == B」。 'A \ = B'是'\ +(A = B)'的簡稱,即不可統一。 – sharky 2010-09-05 23:04:54