nix 中可能有这样的事情吗?
f = {x, y, ...}:
{
x = x + 1;
y = y + 2;
...;
}
对一组参数调用 f
会返回一个集合:
f { x = 1; y = 2; } -> { x = 2; y = 4; }
f { x = 1; y = 2; z = 5 } -> { x = 2; y = 4; z = 5; }
f { x = 1; y = 2; z = 5; s = "str"; } -> { x = 2; y = 4; z = 5; s = "str"; }
说清楚一点。省略号...
的集合是可变参数类型,并不意味着日常语言中使用的等等。这里的解决方案是如果可能的话,在省略号上调用 get { ... }
。但我不知道该语言是否支持这个。
最佳答案
这应该有效:
f = args@{x, y, ...}: args // { x = x + 2; y = y + 2; }
您可以在这里阅读更多相关信息:
关于functional-programming - Nix 将可变参数添加到函数中的集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60290305/