列表的无序并集 是一个包含与 相同元素的列表,但会移除任何给定元素的第二次及后续出现。例如,集合 的无序并集是 。无序并集与通常的并集 不同,因为无序并集中的元素不一定是有序的。
无序并集在 Wolfram Language 中实现为DeleteDuplicates[列表].
它可以在 Wolfram Language 顶层代码中实现为
UnsortedUnion1[x_] := Tally[x][[All, 1]]
或
UnsortedUnion2[x_] := Reap[Sow[1, x], _, #1&][[2]]
或
UnsortedUnion3[x_] := Module[{f}, f[y_] := (f[y] = Sequence[]; y); f /@ x ]
根据要进行并集运算的列表的性质,上述不同的实现方式可能更有效,尽管一般来说,第一种是最快的。