Set consolidation: Difference between revisions

Content added Content deleted
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 697: Line 697:
</lang>
</lang>


=={{header|Egison}}==
=={{header|Egison}}==
Line 1,686: Line 1,685:
### ]
### ]
### ]</pre>
### ]</pre>

=={{header|Perl 6}}==
<lang perl6>multi consolidate() { () }
multi consolidate(Set \this is copy, *@those) {
gather {
for consolidate |@those -> \that {
if this ∩ that { this = this ∪ that }
else { take that }
}
take this;
}
}

enum Elems <A B C D E F G H I J K>;
say $_, "\n ==> ", consolidate |$_
for [set(A,B), set(C,D)],
[set(A,B), set(B,D)],
[set(A,B), set(C,D), set(D,B)],
[set(H,I,K), set(A,B), set(C,D), set(D,B), set(F,G,H)];</lang>
{{out}}
<pre>set(A, B) set(C, D)
==> set(C, D) set(A, B)
set(A, B) set(B, D)
==> set(A, B, D)
set(A, B) set(C, D) set(D, B)
==> set(A, B, C, D)
set(H, I, K) set(A, B) set(C, D) set(D, B) set(F, G, H)
==> set(A, B, C, D) set(H, I, K, F, G)</pre>


=={{header|Phix}}==
=={{header|Phix}}==
Line 2,033: Line 2,004:
</lang>
</lang>


=={{header|Raku}}==
(formerly Perl 6)
<lang perl6>multi consolidate() { () }
multi consolidate(Set \this is copy, *@those) {
gather {
for consolidate |@those -> \that {
if this ∩ that { this = this ∪ that }
else { take that }
}
take this;
}
}

enum Elems <A B C D E F G H I J K>;
say $_, "\n ==> ", consolidate |$_
for [set(A,B), set(C,D)],
[set(A,B), set(B,D)],
[set(A,B), set(C,D), set(D,B)],
[set(H,I,K), set(A,B), set(C,D), set(D,B), set(F,G,H)];</lang>
{{out}}
<pre>set(A, B) set(C, D)
==> set(C, D) set(A, B)
set(A, B) set(B, D)
==> set(A, B, D)
set(A, B) set(C, D) set(D, B)
==> set(A, B, C, D)
set(H, I, K) set(A, B) set(C, D) set(D, B) set(F, G, H)
==> set(A, B, C, D) set(H, I, K, F, G)</pre>


=={{header|REXX}}==
=={{header|REXX}}==
Line 2,420: Line 2,419:
{{A, B, C, D}}
{{A, B, C, D}}
{{H, I, K, F, G}, {A, B, C, D}}</pre>
{{H, I, K, F, G}, {A, B, C, D}}</pre>

=={{header|VBScript}}==
=={{header|VBScript}}==
<lang vb>
<lang vb>