18 lines
507 B
Plaintext
18 lines
507 B
Plaintext
DIM list$(3) : list$() = "1", "2", "3", "4"
|
|
PRINT FNpowerset(list$())
|
|
END
|
|
|
|
DEF FNpowerset(list$())
|
|
IF DIM(list$(),1) > 31 ERROR 100, "Set too large to represent as integer"
|
|
LOCAL i%, j%, s$
|
|
s$ = "{"
|
|
FOR i% = 0 TO (2 << DIM(list$(),1)) - 1
|
|
s$ += "{"
|
|
FOR j% = 0 TO DIM(list$(),1)
|
|
IF i% AND (1 << j%) s$ += list$(j%) + ","
|
|
NEXT
|
|
IF RIGHT$(s$) = "," s$ = LEFT$(s$)
|
|
s$ += "},"
|
|
NEXT i%
|
|
= LEFT$(s$) + "}"
|