Power set: Difference between revisions

Content deleted Content added
Rahul (talk | contribs)
Rahul (talk | contribs)
→‎{{header|Prolog}}: be kind :) I am a noob in prolog.
Line 783:
@{ (reduce { [@$a, map([@$_, $b], @$a)] } [[]], @_) }
}</lang>
 
=={{header|Prolog}}==
<lang prolog>
%powerset(Lst, PLst).
addhead(Hd,Lst,Res):-
Res = [Hd |Lst].
 
head([H|_],H).
tail([_|T],T).
 
powerset([], [[]]).
powerset(Lst, PLst):-
head(Lst,Hd),
tail(Lst,Tl),
powerset(Tl,Rest),
maplist(addhead(Hd), Rest, Ans),
append(Rest, Ans, PLst).
 
e.g
powerset([1,2,3,4], R), write_term(R, [max_depth(100)]).
[[],
[4], [3], [3, 4], [2], [2, 4], [2, 3], [2, 3, 4],
[1], [1, 4], [1, 3], [1, 3, 4], [1, 2], [1, 2, 4],
[1, 2, 3], [1, 2, 3, 4]]
 
</lang>
 
=={{header|Python}}==