Hello Linus, Thank you for you prompt reply!
Thus quoth Linus Heckemann at 12:24 on Sun, May 28 2017: > On 28/05/17 13:18, Sergiu Ivanov wrote: >> >> concatAttrs = attrList: pkgs.lib.fold (x: y: x // y) {} attrList; >> >> Do you see any isssues with such an implementation? >> > > Looks like a sensible way to do it to me, though I'd be surprised if it > doesn't already exist in nixpkgs. Yeah, that's what I thought as well. > Do keep in mind that // is not commutative — the order matters when the > two sets contain the same key — but other than that I don't see any > issues. Indeed, right, the function I wrote should probably be called iterUnion, to avoid insinuating any special treatment of repeated keys. My use case is quite specific. I do this, approximately: let func name = { "${name}" = something name; }; in concatAttrs (map func [ "name1" "name2" ]) I don't expect to have repeated names, so key repetitions isn't something likely to happen. > You might also want to look at the merging logic used for nixos > modules (lib/modules.nix), although that's significantly more complex. Oh, thank you for the reference (I actually took a look!), but in my case I only merge three-element attribute sets. My concatAttrs is essentially me playing around with Nix more than anything else :-) -- Sergiu
signature.asc
Description: PGP signature
_______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl https://mailman.science.uu.nl/mailman/listinfo/nix-dev