summary refs log tree commit diff
path: root/lib/attrsets.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-07-23 16:12:25 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-07-23 16:49:13 +0200
commit3cd5fd8bb3fc4b824e89cb800716989a332f20f1 (patch)
tree4f872ab4c696f5cc6fe4e3824795f66909d3717e /lib/attrsets.nix
parent2b2e7c27307e8b78d1b211ff0fdba86d558b37eb (diff)
downloadnixpkgs-3cd5fd8bb3fc4b824e89cb800716989a332f20f1.tar
nixpkgs-3cd5fd8bb3fc4b824e89cb800716989a332f20f1.tar.gz
nixpkgs-3cd5fd8bb3fc4b824e89cb800716989a332f20f1.tar.bz2
nixpkgs-3cd5fd8bb3fc4b824e89cb800716989a332f20f1.tar.lz
nixpkgs-3cd5fd8bb3fc4b824e89cb800716989a332f20f1.tar.xz
nixpkgs-3cd5fd8bb3fc4b824e89cb800716989a332f20f1.tar.zst
nixpkgs-3cd5fd8bb3fc4b824e89cb800716989a332f20f1.zip
More efficient version of filterAttrs
Diffstat (limited to 'lib/attrsets.nix')
-rw-r--r--lib/attrsets.nix2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index cb4091b916c..d81d69b1402 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -76,7 +76,7 @@ rec {
        => { foo = 1; }
   */
   filterAttrs = pred: set:
-    listToAttrs (fold (n: ys: let v = set.${n}; in if pred n v then [(nameValuePair n v)] ++ ys else ys) [] (attrNames set));
+    listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
 
 
   /* foldAttrs: apply fold functions to values grouped by key. Eg accumulate values as list: