RosettaCodeData/Task/Power-set/Prolog/power-set-2.pro

6 lines
159 B
Prolog

power_set( [], [[]]).
power_set( [X|Xs], PS) :-
power_set(Xs, PS1),
maplist( append([X]), PS1, PS2 ), % i.e. prepend X to each PS1
append(PS1, PS2, PS).