我想写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) ).
感谢。
答案 0 :(得分:3)
not
(通常)未定义为运算符。您应该改为编写not( contains(L3,L2) )
,或者更好的是,使用ISO Prolog标准(\+)/1
否定控制构造并编写\+ ( contains(L3,L2) )
。