在 Kdb 中,如何将每个符号列表分配给值列表
Posted
技术标签:
【中文标题】在 Kdb 中,如何将每个符号列表分配给值列表【英文标题】:in Kdb, how do I assign a list of symbols each to a list of values 【发布时间】:2021-07-21 06:04:38 【问题描述】:例如,我想将包含 10 对的字典传递给函数以绕过 8 价限制。然后,我希望将字典的每个键都分配为局部变量,以分配给它们的值,并将其用作我的函数的参数。或者,有没有更好的方法来解决这个问题?
【问题讨论】:
我同意 Anton 的观点 - 为什么不直接通过查找使用字典中的变量呢?您不需要将它们作为命名的局部变量 【参考方案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
【讨论】:
以上是关于在 Kdb 中,如何将每个符号列表分配给值列表的主要内容,如果未能解决你的问题,请参考以下文章