>>273
% Prolog

'0から7までの数字が描かれたカードがある。ただし、0だけ2枚で、合計9枚とする。こ
の中から4枚を選ぶ組合せを考える。ただし、6と7は同時に選ばない(両方選ばなくても
よい)。このような組合せを列挙する'(U) :-
    findall(L,(
          組み合わせ([0,0,1,2,3,4,5,6,7],4,L),
          許される組み合わせ(L)),
        X),
    sort(X,Y),
    append(_[U|R],Y).

許される組み合わせ(A) :- append(_[6|_],A),append(_,[7|_],A),!,fail.
許される組み合わせ(A) :- append(B,[0|C],A),append(D,[0|E],C),!,fail.
許される組み合わせ(A).