【问题标题】:in Kdb, how do I assign a list of symbols each to a list of values在 Kdb 中,如何将每个符号列表分配给值列表
【发布时间】:2021-07-21 06:04:38
【问题描述】:

例如,我想将包含 10 对的字典传递给函数以绕过 8 价限制。然后,我希望将字典的每个键都分配为局部变量,以分配给它们的值,并将其用作我的函数的参数。或者,有没有更好的方法来解决这个问题?

【问题讨论】:

  • 我同意 Anton 的观点 - 为什么不直接通过查找使用字典中的变量呢?您不需要将它们作为命名的局部变量

标签: function dictionary variable-assignment kdb


【解决方案1】:

恐怕没有办法在功能上为局部范围变量赋值。例如

{eval parse "a: 10";}1b 

创建全局变量a

您可以修复一些范围名称,例如.l,在函数返回之前保留变量并清除范围,例如:

{
  eval each (:),'flip (`$".l.",/:string key x;value x);
  r: .l.a + .l.b + .l.c;
  delete from `.l;
  r
}`a`b`c!1 2 3

但直接从输入字典(如x[`a])获取值似乎更容易和更清晰的方法。


apply 有助于简化调用其他函数,使用字典值作为参数。这可能是您正在寻找的。例如

{
  f: {x+y+z};
  f . x`a`b`c
}`a`b`c!1 2 3

【讨论】:

    猜你喜欢
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多