你如何在 elixir 的列表中获得重复项?

Las*_*ser 3 reduce functional-programming elixir

如果您想在列表中获取重复项而不是 uniq 值,您将如何在使用模式匹配的快速、密集脚本中执行此操作?

例如,输入["ash", "bob", "cat", "bob", "ash"]如何获得["ash", "bob"]

Paw*_*rok 8

既然你指定你想要一个快速、密集的脚本,我认为你应该考虑这个解决方案:

l = ["ash", "bob", "cat", "bob", "ash", "ash"]

# to get all duplicates
l -- Enum.uniq(l) # => ["bob", "ash", "ash"]

# to get a unique list of duplicates
Enum.uniq(l -- Enum.uniq(l)) # => ["bob", "ash"]
Run Code Online (Sandbox Code Playgroud)