このページでは、コレクションパイプラインパターンの操作について説明します。詳細については、次の資料をお読みください。

明確

重複する要素を削除します。

重複を削除した新しいリストを返します。

ruby…
[1,2,3,2,1].uniq
# => [1, 2, 3]
clojure…
(distinct [1 2 3 2 1])
;; => (1 2 3)

一部のコレクションフレームワークには、セットを処理するための別の「Set」クラスがあります。これらは重複を自動的に削除し、順序付けがありません。そのため、数学的なセットに適したモデルになっています。このような場合、変換操作を使用してリストをセットに変換し、重複を削除できます。ただし、順序を維持する必要がある場合には、これは適しません。他のフレームワークは、リストを使用してセットを表すだけで、必要に応じてプログラマーに重複の削除を依存しています。

通常、要素は等価演算子を使用して比較されます。ただし、一部の言語では、比較用のラムダを提供できます。

ruby…
["Bach", "Sibelius", "Beethoven", "Elgar", "Schumann"].
  uniq {|c| c[0]}
# => ["Bach", "Sibelius", "Elgar"]