去重
删除重复元素
返回一个删除了所有重复项的新列表。
ruby…
[1,2,3,2,1].uniq # => [1, 2, 3]
clojure…
(distinct [1 2 3 2 1]) ;; => (1 2 3)
一些集合框架有单独的 Set 类来处理集合。这些类会自动删除重复项,并且没有排序 - 这使得它们成为数学集合的合适模型。在这种情况下,您可以使用转换操作将列表转换为集合以删除重复项 - 但如果您想保留排序,这将不合适。其他框架只使用列表来表示集合,依赖于程序员在需要时删除重复项。
元素通常使用相等运算符进行比较。但是,某些语言允许您为比较提供一个 lambda 表达式。
ruby…["Bach", "Sibelius", "Beethoven", "Elgar", "Schumann"]. uniq {|c| c[0]} # => ["Bach", "Sibelius", "Elgar"]