我有2套差异的工作谓词
difference([],Y,[]).
difference([X|R],Y,Z) :-
member(X,Y),
!,
difference(R,Y,Z).
difference([X|R],Y,[X|Z]) :-
difference(R,Y,Z).
但我想为3套做类似的事情,我无法弄明白
difference(S1,S2,S3,result)
导致(S1 \ S2)\ S3 。
答案 0 :(得分:1)
你基本上已经自己说过了:拿公式(S1 \ S2)\ S3 ,用 T1替换 S1 \ S2 (暂时的),然后得到的公式是 T1 \ S3 。
所以现在把它放到代码中:
difference(S1,S2,S3,Result) :-
difference(S1,S2,T1), %T1 = S1\S2
difference(T1,S3,Result). %Result = T1\S3=(S1\S2)\S3