Author: NicolasPierron
Date: Wed Apr 27 18:41:34 2011
New Revision: 27013
URL: https://svn.nixos.org/websvn/nix/?rev=27013&sc=1

Log:
lists: Add imap function to iterate over a list with the index of each
element.

Modified:
   nixpkgs/trunk/pkgs/lib/lists.nix

Modified: nixpkgs/trunk/pkgs/lib/lists.nix
==============================================================================
--- nixpkgs/trunk/pkgs/lib/lists.nix    Wed Apr 27 18:41:31 2011        (r27012)
+++ nixpkgs/trunk/pkgs/lib/lists.nix    Wed Apr 27 18:41:34 2011        (r27013)
@@ -1,7 +1,7 @@
 # General list operations.
 
 rec {
-  inherit (builtins) head tail isList;
+  inherit (builtins) head tail length isList;
 
 
   # Create a list consisting of a single element.  `singleton x' is
@@ -27,6 +27,10 @@
     then nul
     else foldl op (op nul (head list)) (tail list);
 
+  # map with index: `imap (i: v: "${v}-${toString i}") ["a" "b"] ==
+  # ["a-1" "b-2"]'
+  imap = f: list:
+    zipListsWith f (range 1 (length list)) list;
 
   # Concatenate a list of lists.
   concatLists = fold (x: y: x ++ y) [];
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to