gnu Prolog powerset модификация

Итак, я получил это для 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] , поскольку это подмножества начиная слева и идя направо.

Я пробовал использовать комбинацию добавления и рекурсии, но это не сработало, как я хотел. Немного озадаченный.

Спасибо.

5
задан false 22 June 2014 в 20:49
поделиться