From 1fea5866aea0aeed2c22dcee20e3fd3f088de3a5 Mon Sep 17 00:00:00 2001 From: "Ricardo M. Correia" Date: Wed, 12 Nov 2014 21:36:26 +0100 Subject: [PATCH] Add `unique` list function It removes duplicate elements from a list. --- lib/lists.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) 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; + }