如何在 kdb/Q 中封闭变量

#Tech

如何在 kdb/Q 中封闭变量

在 kdb/Q 中,函数无法直接在内部定义变量并使用它们,类似于其他语言中的局部变量。

在示例中,试图在函数内部声明 `incr` 变量并使用它会导致错误,因为 `incr` 未绑定。

这与在其他编程语言中使用 `let` 表达式定义局部变量并应用于列表不同。

kdb/Q 中没有直接等价于 `let` 表达式的机制,因此需要以其他方式实现类似的功能。

目前有效的解决方法是直接在 lambda 表达式中嵌入变量。

查看原文开头(英文 · 仅前 3 段)

Consider the following function that adds 1 to each element in the list.

f : {{x + 1} each x}

f[(1;2;3)]

※ 出于版权考虑,仅引用前 3 段。完整内容请阅读原文。

阅读原文 ↗