【发布时间】:2019-05-23 08:57:22
【问题描述】:
我们希望将完整的字典作为输入传递给 lambda 函数,但默认情况下 kdb 只传递字典的值。
我们如何在 lambda 函数中获取字典的键?
由于词法作用域,我们不能在 lambda 中使用字典名称。
{0N!x}@'(`ab`cd!1 2) / Inside function we get only 1 and 2 and not `ab`cd
下面有一个解决方案,但还有其他/更好的解决方案:
{key key @'x}(`ab`cd!1 2)
编辑 - 了解问题,这里的问题不是字典只传递值,而是“每个”函数/副词,因为每个都只将值传递给函数。
q)key each (`ab`cd!1 2)
ab| ,0
cd| 0 1
如果我们将完整的字典传递给函数,那么我们可以获得键或值。
q){key x}d
`ab`cd
q){value x}d
1 2
【问题讨论】:
标签: kdb