Итак, я получил это для powerset:
powerset([], []).
powerset([H|T], P) :- powerset(T,P).
powerset([H|T], [H|P]) :- powerset(T,P).
Это генерирует все наборы списка. Можно ли сгенерировать все наборы в порядке списка.
Пример:
List = [a,b,c]
Я хочу получить
[a],[a,b],[a,b,c],[b],[b,c],[c]
Обратите внимание, что в этом списке подмножеств нет [a, c]
, поскольку это подмножества начиная слева и идя направо.
Я пробовал использовать комбинацию добавления и рекурсии, но это не сработало, как я хотел. Немного озадаченный.
Спасибо.