# Idiom #118 List to set

Create the set y from the list x.
x may contain duplicates. y is unordered and has no repeated values.

``(def y (set x))``
``#include <set>``
``````std::set<T> y (x.begin (), x.end ());
``````
``````#include<unordered_set>
``````
``````std::unordered_set<T> y (x.begin (), x.end ());
``````
``using System.Collections.Generic;``
``var y = new HashSet<T>(x);``
``import std.container;``
``auto y = redBlackTree(x);``
``````bool[typeof(x[0])] y;

foreach (e ; x)
y[e] = true;``````
``var y = x.toSet();``
``y = x |> Enum.uniq |> List.to_tuple``
``y = MapSet.new(x)``
``Y = sets:from_list(X).``
``````func sliceToSet[T comparable](x []T) map[T]struct{} {
y := make(map[T]struct{}, len(x))
for _, v := range x {
y[v] = struct{}{}
}
return y
}``````
``````y := make(map[T]struct{}, len(x))
for _, v := range x {
y[v] = struct{}{}
}``````
``import qualified Data.Set as Set``
``y = Set.fromList x``
``var y = new Set(x);``
``````import java.util.Set;
import java.util.HashSet;``````
``Set<T> y = new HashSet<T>(x);``
``````import java.util.HashSet;
import java.util.List;``````
``Set<T> y = new HashSet<>(x);``
``(setf y (remove-duplicates x))``
``````local hash = {}
local y = {}
for _,v in ipairs(x) do
if (not hash[v]) then
y[#y+1] = v
hash[v] = true
end
end``````
``@import Foundation;``
``NSSet *y=[NSSet setWithArray:x];``
``\$y = array_unique(\$x);``
``for i := Low(X) to High(X) do Include(Y,X[i]);``
``use List::Util qw(uniq);``
``my @y = uniq @x;``
``my %y = map {\$_=>0} @x;``
``y = set(x)``
``require 'set'``
``y = x.to_set``
``use std::collections::HashSet;``
``let y: HashSet<_> = x.into_iter().collect();``
``val y = x.toSet``
``y := x asSet``

programming-idioms.org