【问题标题】:Nix add variadic args to a set from a functionNix 将可变参数添加到函数的集合中
【发布时间】:2020-02-18 22:23:47
【问题描述】:

在 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 { ... }。但我不知道语言是否支持这个。

【问题讨论】:

    标签: functional-programming nix


    【解决方案1】:

    这应该可行:

    f = args@{x, y, ...}: args // { x = x + 2; y = y + 2; }
    

    您可以在此处阅读更多信息:

    https://nixos.org/nix/manual/#ss-functions

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 2011-11-24
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 2019-08-30
      相关资源
      最近更新 更多