1

我发现Erlang中有集合的集合操作,但我找不到列表的类似操作。我想在 Erlang 的列表中执行基本的联合操作:

A = [1, 2, 3]
B = [1, 2, 5]
C = A union B = [1, 2, 3, 5]

如何在 Erlang 中执行此操作?

不过,我使用集合做了以下事情,并且它有效。我只是想知道,如果我可以在没有设置的情况下做到这一点。

C = sets:to_list(sets:union(sets:from_list(A),sets:from_list(B))).
4

2 回答 2

2

您可以连接两个列表,然后对它们进行排序,删除重复项:

A = [1, 2, 3],
B = [1, 2, 5],
C = lists:usort(A ++ B).
于 2020-11-15T17:55:31.930 回答
2

ordsets模块使用与模块相同的 API 将有序列表作为集合处理setshttps://erlang.org/doc/man/ordsets.html

于 2020-11-15T10:53:36.607 回答