プロローグでリスト差分ルーチンを実装しようとしています。以下に障害が発生した何らかの理由 :プロローグリスト差分ルーチン
difference(Xs,Ys,D) :- difference(Xs,Ys,[],D).
difference([],_,A,D) :- D is A, !.
difference([X|Xs],Ys,A,D) :-
not(member(X,Ys)),
A1 is [X|A],
difference(Xs,Ys,A1,D).
しようとすると:
?- difference([1,2],[],D).
を、私はこのエラーを取得する:
ERROR: '.'/2: Type error: `[]' expected, found `1' ("x" must hold one character)
^ Exception: (10) _L161 is [2|1] ?