指定されたリストの可能なすべてのサブリストを返すプロローグを作成したいので、次のように書きました。
subSet(L,S):- append(_,L2,L),append(S,_,L2).
そのようにして、次のような結果が得られます。
Out = [] ;
Out = [a] ;
Out = [a, b] ;
Out = [a, b, c] ;
Out = [] ;
Out = [b] ;
Out = [b, c] ;
Out = [] ;
Out = [c] ;
Out = [] ;
空のリストの繰り返しを取り除くために何をしなければなりませんか?