2014-02-12 45 views
0

我需要查看是否有三個人至少有兩個來自組g1。我寫道:序言中的算術錯誤

ingroup(person1, g1). 
ingroup(person2, g1). 
ingroup(person3, g1). 
ingroup(person4, g2). 
ingroup(person5, g2). 
test_ok :- ingroup(X,g1),ingroup(Y,g1), ingroup(Z,G), diff(X,Y,Z). 
diff(X,Y,Z) :- X =\= Y, X =\= Z, Y =\= Z. 

這使得在SWI Prolog的以下錯誤:

68 ?- test_ok. 
ERROR: =\=/2: Arithmetic: `person1/0' is not a function. 

我要去哪裏錯了?

+0

OT:你的代碼是非常昂貴的...瞭解一些更便宜的選擇... – CapelliC

回答

4

您正在使用算術比較運算符,但person1是一個原子。因此錯誤信息。嘗試使用術語比較運算符,如(\==)/2。有關詳情,請參閱您的Prolog系統文檔。

+0

完美!謝謝。 –