30 lines
685 B
Plaintext
30 lines
685 B
Plaintext
$ include "seed7_05.s7i";
|
|
|
|
const func array bitset: powerSet (in bitset: baseSet) is func
|
|
result
|
|
var array bitset: pwrSet is [] (bitset.value);
|
|
local
|
|
var integer: element is 0;
|
|
var integer: index is 0;
|
|
var bitset: aSet is bitset.value;
|
|
begin
|
|
for element range baseSet do
|
|
for key index range pwrSet do
|
|
aSet := pwrSet[index];
|
|
if element not in aSet then
|
|
incl(aSet, element);
|
|
pwrSet &:= aSet;
|
|
end if;
|
|
end for;
|
|
end for;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
local
|
|
var bitset: aSet is bitset.value;
|
|
begin
|
|
for aSet range powerSet({1, 2, 3, 4}) do
|
|
writeln(aSet);
|
|
end for;
|
|
end func;
|