Power set: Difference between revisions

Content deleted Content added
→‎{{header|Lua}}: forgot the empty set!
Line 561: Line 561:
function powerset(s, start)
function powerset(s, start)
start = start or 1
start = start or 1
if(start == #s) then return {{s[start]}} end
if(start > #s) then return {{}} end
local ret = {{s[start]}, unpack(powerset(s, start + 1))}
local ret = powerset(s, start + 1)
for i = 2, #ret do
for i = 1, #ret do
ret[#ret + 1] = {s[start], unpack(ret[i])}
ret[#ret + 1] = {s[start], unpack(ret[i])}
end
end