Remove duplicate elements: Difference between revisions

(Added Elixir)
Line 1,028:
 
=={{header|Haskell}}==
 
<lang haskell>values = [1,2,3,2,3,4]
==Usage==
unique = List.nub values</lang>
 
<lang haskell>values =print $ unique [14,2 5,3 4, 2, 3, 3, 4]
 
[4,5,2,3]</lang>
 
==Sorted result using Set==
 
O(n ln(n)). Requires there is a partial ordering of elements.
 
<lang haskell>import qualified Data.Set as Set
 
unique :: Ord a => [a] -> [a]
unique = Set.toList . Set.fromList</lang>
 
==Unsorted result using Set==
 
O(n ln(n)). Retains original order. Requires there is a partial ordering of elements.
 
<lang haskell>import Data.Set
 
unique :: Ord a => [a] -> [a]
unique = loop empty
where
loop s [] = []
loop s (x : xs) | member x s = loop s xs
| otherwise = x : loop (insert x s) xs</lang>
 
==nub Library function==
 
O(n^2). Retains original order. Requires that elements can be compared for equality.
 
<lang haskell>import Data.List
unique :: Eq a => [a] -> [a]
unique = List.nub values</lang>
 
=={{header|HicEst}}==
Anonymous user