Unverified Commit b04b7d64 authored by Silvan Mosberger's avatar Silvan Mosberger Committed by GitHub
Browse files

Merge pull request #239722 from Stunkymonkey/lib-allUnique

lib.lists.allUnique: init
parents 486911d0 66261e99
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ let
      concatMap flatten remove findSingle findFirst any all count
      optional optionals toList range replicate partition zipListsWith zipLists
      reverseList listDfs toposort sort naturalSort compareLists take
      drop sublist last init crossLists unique intersectLists
      drop sublist last init crossLists unique allUnique intersectLists
      subtractLists mutuallyExclusive groupBy groupBy';
    inherit (self.strings) concatStrings concatMapStrings concatImapStrings
      intersperse concatStringsSep concatMapStringsSep
+13 −0
Original line number Diff line number Diff line
@@ -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:
+9 −0
Original line number Diff line number Diff line
@@ -726,6 +726,15 @@ runTests {
    expected = 7;
  };

  testAllUnique_true = {
    expr = allUnique [ 3 2 4 1 ];
    expected = true;
  };
  testAllUnique_false = {
    expr = allUnique [ 3 2 3 4 ];
    expected = false;
  };

# ATTRSETS

  testConcatMapAttrs = {