Prolog中的算术错误

时间:2014-02-12 08:00:34

标签: prolog

我需要看看是否有三个人,至少有两个人来自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.

我哪里错了?

1 个答案:

答案 0 :(得分:4)

您正在使用算术比较运算符,但person1是一个原子。因此错误消息。尝试使用术语比较运算符,例如(\==)/2。有关详细信息,请参阅Prolog系统文档。