2014-01-23 33 views
0

我想編寫序言代碼給我L3包含L1與L2 (L3 = L1 \ L2)的參數。PROLOG - 語法錯誤:運算符預期使用時不((..)

,並在此代碼我得到這個問題:

語法錯誤:運營商預計

contains(_,[]) . 
contains(L1,[X|TL]) :- member(X, L1) , contains(L1,TL). 
minus(L1,L2,L3) :- contains(L3,L1) , not (contains(L3,L2)). 

感謝的最後一行。

+2

您應該使用'\ +'代替,因爲它更便於攜帶。您使用的是哪種Prolog實現? –

回答

3

not(通常)未定義爲運算符。您應該寫not(contains(L3,L2)),或者更好的是,使用ISO Prolog標準(\+)/1否定控制結構並編寫\+ (contains(L3,L2))