about summary refs log tree commit diff
path: root/lib/lists.nix
diff options
context:
space:
mode:
authorRicardo M. Correia <rcorreia@wizy.org>2014-11-12 21:36:26 +0100
committerRicardo M. Correia <rcorreia@wizy.org>2014-11-12 22:31:49 +0100
commit1fea5866aea0aeed2c22dcee20e3fd3f088de3a5 (patch)
tree1d5cc8e08b4479e23403bd9bdabe4e7444cb8005 /lib/lists.nix
parent3b0fa60a9865ca4887266fcfb7e467d8b8966d38 (diff)
downloadnixlib-1fea5866aea0aeed2c22dcee20e3fd3f088de3a5.tar
nixlib-1fea5866aea0aeed2c22dcee20e3fd3f088de3a5.tar.gz
nixlib-1fea5866aea0aeed2c22dcee20e3fd3f088de3a5.tar.bz2
nixlib-1fea5866aea0aeed2c22dcee20e3fd3f088de3a5.tar.lz
nixlib-1fea5866aea0aeed2c22dcee20e3fd3f088de3a5.tar.xz
nixlib-1fea5866aea0aeed2c22dcee20e3fd3f088de3a5.tar.zst
nixlib-1fea5866aea0aeed2c22dcee20e3fd3f088de3a5.zip
Add `unique` list function
It removes duplicate elements from a list.
Diffstat (limited to 'lib/lists.nix')
-rw-r--r--lib/lists.nix10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/lists.nix b/lib/lists.nix
index 566ee89c95bc..d57c4893daa8 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -223,4 +223,14 @@ rec {
 
   crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
 
+  # Remove duplicate elements from the list
+  unique = list:
+    if list == [] then
+      []
+    else
+      let
+        x = head list;
+        xs = unique (drop 1 list);
+      in [x] ++ remove x xs;
+
 }