次の 3 つのルールを一緒に接続する際に問題が発生しています。
countingCombo([H|T], Sequence2) :-
fact1(H, Sequence),
append(Sequence, Sequence2, Sequence3),
countingCombo(T, Sequence3).
countingCombo([], Combination) :-
print(Combination),
membersofCombo(Combination, X, C).
membersofCombo(List, X, C) :-
sort(List, List1),
member(X, List1),
count(List, X, C).
count([], X, 0).
count([X|T], X, Y) :-
count(T, X, Z),
Y is 1+Z.
count([X1|T], X, Z) :-
X1 \= X,
count(T, X, Z).
countcombo は追加リストを作成します。membersofcombo は、そのリストを並べ替えてから、元の追加リストの各メンバーを生成します。count ルールは、各メンバーの出現回数をカウントします。
membersofcombo と count は連携して動作しますが、countingcombo をコンボのメンバーに接続することはできません。