about summary refs log tree commit diff
path: root/lib/lists.nix
diff options
context:
space:
mode:
authorVladimír Čunát <v@cunat.cz>2023-11-15 07:33:10 +0100
committerVladimír Čunát <v@cunat.cz>2023-11-15 07:33:10 +0100
commitc46eae0f3572fbe7af42e5d40648b7b4a1d1317b (patch)
tree84e748e6477734c4826b4d6b34152b1958e5627a /lib/lists.nix
parent9297b620bb86624e6cf4b6ae54fc4ae1da98bb83 (diff)
parente8ad54f562b4621c7c080b4a3ddbafe4735bcb86 (diff)
downloadnixlib-c46eae0f3572fbe7af42e5d40648b7b4a1d1317b.tar
nixlib-c46eae0f3572fbe7af42e5d40648b7b4a1d1317b.tar.gz
nixlib-c46eae0f3572fbe7af42e5d40648b7b4a1d1317b.tar.bz2
nixlib-c46eae0f3572fbe7af42e5d40648b7b4a1d1317b.tar.lz
nixlib-c46eae0f3572fbe7af42e5d40648b7b4a1d1317b.tar.xz
nixlib-c46eae0f3572fbe7af42e5d40648b7b4a1d1317b.tar.zst
nixlib-c46eae0f3572fbe7af42e5d40648b7b4a1d1317b.zip
Merge branch 'master' into staging-next
Diffstat (limited to 'lib/lists.nix')
-rw-r--r--lib/lists.nix13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/lists.nix b/lib/lists.nix
index 3835e3ba69cb..15047f488f4d 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -821,6 +821,19 @@ rec {
    */
   unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [];
 
+  /* Check if list contains only unique elements. O(n^2) complexity.
+
+     Type: allUnique :: [a] -> bool
+
+     Example:
+       allUnique [ 3 2 3 4 ]
+       => false
+       allUnique [ 3 2 4 1 ]
+       => true
+   */
+  allUnique = list: (length (unique list) == length list);
+
+
   /* Intersects list 'e' and another list. O(nm) complexity.
 
      Example: