Power set: Difference between revisions

161 bytes removed ,  2 years ago
→‎{{header|Wren}}: Now uses Wren-perm module.
(→‎{{header|Wren}}: Now uses Wren-perm module.)
Line 4,475:
 
=={{header|Wren}}==
{{libheader|Wren-perm}}
Although we have a module for sets, they are based on maps whose keys must be value types. This means that sets of sets are technically impossible because sets themselves are not value types.
 
We therefore use lists to represent sets which works fine here.
<lang ecmascript>varimport powerset"./perm" //for recursivePowerset
powerset = Fn.new { |set|
if (set.count == 0) return [[]]
var head = set[0]
var tail = set[1..-1]
return powerset.call(tail) + powerset.call(tail).map { |s| [head] + s }
}
 
var sets = [ [1, 2, 3, 4], [], [[]] ]
for (set in sets) {
System.print("The power set of %(set) is:")
System.print(powersetPowerset.calllist(set))
System.print()
}</lang>
Line 4,496 ⟶ 4,491:
<pre>
The power set of [1, 2, 3, 4] is:
[[], [41], [32], [3], [4], [1, 2], [21, 43], [21, 34], [2, 3, 4], [1], [12, 4], [13, 34], [1, 32, 43], [1, 2, 4], [1, 23, 4], [1, 2, 3, 4], [1, 2, 3, 4]]
 
The power set of [] is:
9,482

edits