我需要看看是否有三个人,至少有两个人来自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 :(得分:4)
您正在使用算术比较运算符,但person1
是一个原子。因此错误消息。尝试使用术语比较运算符,例如(\==)/2
。有关详细信息,请参阅Prolog系统文档。