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