20 lines
381 B
Plaintext
20 lines
381 B
Plaintext
procedure power_set (s)
|
|
if *s = 0
|
|
then suspend set ()
|
|
else {
|
|
head := set(?s)
|
|
every ps := power_set (s -- head) do {
|
|
suspend ps
|
|
suspend ps ++ head
|
|
}
|
|
}
|
|
end
|
|
|
|
procedure main ()
|
|
every s := power_set (set(1,2,3,4)) do { # power_set's values are generated by 'every'
|
|
writes ("[ ")
|
|
every writes (!s || " ")
|
|
write ("]")
|
|
}
|
|
end
|