PROLOG - 语法错误:使用not时运算符(...)

时间:2014-01-23 21:20:56

标签: prolog

我想写prolog代码给我L3包含L1而没有L2的参数  (L3 = L1 \ L2)。

在这段代码中我遇到了这个问题:

语法错误:操作员期望

的最后一行
contains(_,[]) .
contains(L1,[X|TL]) :- member( X, L1) , contains(L1,TL).
minus(L1,L2,L3) :- contains(L3,L1) , not ( contains(L3,L2) ).

感谢。

1 个答案:

答案 0 :(得分:3)

not(通常)未定义为运算符。您应该改为编写not( contains(L3,L2) ),或者更好的是,使用ISO Prolog标准(\+)/1否定控制构造并编写\+ ( contains(L3,L2) )