Power set: Difference between revisions

Content added Content deleted
(Added racket version)
(Updated first D entry)
Line 502: Line 502:


=={{header|D}}==
=={{header|D}}==
Version using just arrays (assumed to contain distinct items):
<lang d>import std.stdio;


T[][] powerSet(T)(in T[] s) pure nothrow {
Version using just arrays:
auto r = new typeof(return)(1, 0);

<lang d>import std.stdio: writeln;

T[][] powerset(T)(T[] s) {
auto r = new T[][](1, 0);
foreach (e; s) {
foreach (e; s) {
T[][] rs;
typeof(return) rs;
foreach (x; r)
foreach (x; r)
rs ~= x ~ [e];
rs ~= x ~ [e];
Line 519: Line 517:


void main() {
void main() {
writeln(powerset([1, 2, 3]));
writeln(powerSet([1, 2, 3]));
}</lang>
}</lang>
{{out}}
<pre>[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]</pre>


A [[Power_set/D|set implementation]] and its power set function.
A [[Power_set/D|set implementation]] and its power set function.