diff options
author | Nicolas Pierron <nicolas.b.pierron@gmail.com> | 2011-04-27 18:41:34 +0000 |
---|---|---|
committer | Nicolas Pierron <nicolas.b.pierron@gmail.com> | 2011-04-27 18:41:34 +0000 |
commit | 85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c (patch) | |
tree | 3b9e07234f0104aaa14aa00b25221401450c1b25 /pkgs/lib/lists.nix | |
parent | 781770eaa94814a9c68876b639014a637c9ae42a (diff) | |
download | nixpkgs-85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c.tar nixpkgs-85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c.tar.gz nixpkgs-85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c.tar.bz2 nixpkgs-85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c.tar.lz nixpkgs-85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c.tar.xz nixpkgs-85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c.tar.zst nixpkgs-85d3fd3e3cf6a7cd2ec361b3bb996f8587f8c34c.zip |
lists: Add imap function to iterate over a list with the index of each
element. svn path=/nixpkgs/trunk/; revision=27013
Diffstat (limited to 'pkgs/lib/lists.nix')
-rw-r--r-- | pkgs/lib/lists.nix | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/lib/lists.nix b/pkgs/lib/lists.nix index a843addaf9e..6adda85a087 100644 --- a/pkgs/lib/lists.nix +++ b/pkgs/lib/lists.nix @@ -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 @@ rec { 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) []; |