Unique elements
There's a function in Clojure called distinct
that removes duplicates from a sequence. Your task is to write a function called uniques
that removes elements that appear twice.
Examples
(uniques []) ;=> ()
(uniques [1 2 3]) ;=> (1 2 3)
(uniques [1 1 2 3]) ;=> (2 3)
(uniques [1 2 3 1 2 3]) ;=> ()
(uniques [1 2 3 2]) ;=> (1 3)
Thanks to this site for the challenge idea where it is considered Medium in Python. The problem has been modified from the original.
Please submit your solutions as comments on this gist.
To subscribe: https://purelyfunctional.tv/newsletter/
It's interesting to note that maps are not order preserving, meaning insertion order is not always the same as its seq order. My observations show this becomes apparent for maps with over 8 entries. As a consequence, several answers given so far have this behaviour:
If you really want to preserve insertion order, you could use a library such as Linked