diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-07-23 16:12:25 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-07-23 16:49:13 +0200 |
commit | 3cd5fd8bb3fc4b824e89cb800716989a332f20f1 (patch) | |
tree | 4f872ab4c696f5cc6fe4e3824795f66909d3717e /lib/attrsets.nix | |
parent | 2b2e7c27307e8b78d1b211ff0fdba86d558b37eb (diff) |
More efficient version of filterAttrs
Diffstat (limited to 'lib/attrsets.nix')
-rw-r--r-- | lib/attrsets.nix | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/attrsets.nix b/lib/attrsets.nix index cb4091b916c5..d81d69b14025 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: |