Set consolidation: Difference between revisions

Line 1,357:
consolidate[{h, i, k}, {a, b}, {c, d}, {d, b}, {f, g, h}]
-> {{a,b,c,d},{f,g,h,i,k}}</pre>
 
=={{header|Nim}}==
{{trans|Python}}
<lang nim>proc consolidate(sets: seq[set[char]]): seq[set[char]] =
if len(sets) < 2:
return sets
var (r, b) = (@[sets[0]], consolidate(sets[1..^1]))
for x in b:
if len(r[0] * x) != 0:
r[0] = r[0] + x
else:
r.add(x)
r
 
echo $consolidate(@[{'A', 'B'}, {'C', 'D'}])
echo $consolidate(@[{'A', 'B'}, {'B', 'D'}])
echo $consolidate(@[{'A', 'B'}, {'C', 'D'}, {'D', 'B'}])
echo $consolidate(@[{'H', 'I', 'K'}, {'A', 'B'}, {'C', 'D'}, {'D', 'B'}, {'F', 'G', 'H'}])</lang>
{{out}}
<pre>
@[{'A', 'B'}, {'C', 'D'}]
@[{'A', 'B', 'D'}]
@[{'A', 'B', 'C', 'D'}]
@[{'F', 'G', 'H', 'I', 'K'}, {'A', 'B', 'C', 'D'}]
</pre>
 
=={{header|OCaml}}==
Anonymous user