Set consolidation: Difference between revisions

m
(Replaced the "seq[set[char]]" by a "varargs[set[char]]". Removed useless "$" in "echo $consolidate...".)
Line 1,433:
</pre>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<lang Mathematica>reduce[x_] :=
Block[{pairs, unique},
Line 1,442:
unique = Complement[Range@Length@x, Flatten@pairs];
Join[Union[Flatten[x[[#]]]] & /@ pairs, x[[unique]]]]
 
consolidate[x__] := FixedPoint[reduce, {x}]</lang>
<pre>consolidate[{a, b}, {c, d}]
-> {{a, b}, {c, d}}
 
consolidate[{a, b}, {b, d}]
-> {{a, b, d}}
 
consolidate[{a, b}, {c, d}, {d, b}]
-> {{a, b, c, d}}
 
consolidate[{h, i, k}, {a, b}, {c, d}, {d, b}, {f, g, h}]
-> {{a,b,c,d},{f,g,h,i,k}}</pre>
1,111

edits