about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorGabriel Volpe <volpegabriel@gmail.com>2024-04-15 19:17:53 +0200
committerGabriel Volpe <volpegabriel@gmail.com>2024-04-15 19:17:53 +0200
commitd864c36d57b46d2e5215ee67b885dd8c4fe8b764 (patch)
treeee2c2e9816c3bd56b95bc4ffcbbf400fa3f88311 /lib
parentfe2bead78b1034052eca1d695118997f31826924 (diff)
downloadnixlib-d864c36d57b46d2e5215ee67b885dd8c4fe8b764.tar
nixlib-d864c36d57b46d2e5215ee67b885dd8c4fe8b764.tar.gz
nixlib-d864c36d57b46d2e5215ee67b885dd8c4fe8b764.tar.bz2
nixlib-d864c36d57b46d2e5215ee67b885dd8c4fe8b764.tar.lz
nixlib-d864c36d57b46d2e5215ee67b885dd8c4fe8b764.tar.xz
nixlib-d864c36d57b46d2e5215ee67b885dd8c4fe8b764.tar.zst
nixlib-d864c36d57b46d2e5215ee67b885dd8c4fe8b764.zip
tree-wide: use mapCartesianProduct
Diffstat (limited to 'lib')
-rw-r--r--lib/lists.nix22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/lists.nix b/lib/lists.nix
index c162f921280d..28fa277b22b1 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -1688,16 +1688,32 @@ rec {
     ## `lib.lists.crossLists` usage example
 
     ```nix
-    crossLists (x:y: "${toString x}${toString y}") [[1 2] [3 4]]
+    crossLists (x: y: "${toString x}${toString y}") [[1 2] [3 4]]
     => [ "13" "14" "23" "24" ]
     ```
 
+    The following function call is equivalent to the one deprecated above:
+
+    ```nix
+    mapCartesianProduct (x: "${toString x.a}${toString x.b}") { a = [1 2]; b = [3 4]; }
+    => [ "13" "14" "23" "24" ]
+    ```
     :::
   */
   crossLists = warn
-    "lib.crossLists is deprecated, use lib.cartesianProductOfSets instead."
-    (f: foldl (fs: args: concatMap (f: map f args) fs) [f]);
+    ''lib.crossLists is deprecated, use lib.mapCartesianProduct instead.
 
+    For example, the following function call:
+
+    nix-repl> lib.crossLists (x: y: x+y) [[1 2] [3 4]]
+    [ 4 5 5 6 ]
+
+    Can now be replaced by the following one:
+
+    nix-repl> lib.mapCartesianProduct ({x,y}: x+y) { x = [1 2]; y = [3 4]; }
+    [ 4 5 5 6 ]
+    ''
+    (f: foldl (fs: args: concatMap (f: map f args) fs) [f]);
 
   /**
     Remove duplicate elements from the `list`. O(n^2) complexity.