如何关闭 kdb/Q 中的变量?

问题描述 投票:0回答:1

考虑以下函数,该函数将列表中的每个元素加 1。

f : {{x + 1} each x}
f[(1;2;3)]

2 3 4

但是,以下函数不起作用——我假设

incr
标识符在后一个表达式中未绑定。

f : {incr : 1; {x + incr} each x}
f[(1;2;3)]

'incr
  [3]  f@:{x + incr}

如何在 kdb/q 中表达如下内容?

let f lst = 
  let incr = 1 in
  List.map (fun x -> x + incr) lst
kdb k
1个回答
0
投票

incr
不存在于内部函数中。

请参阅 https://code.kx.com/q4m3/6_Functions/#63-local-and-global-variables 了解更多详细信息。如果要使用需要从外部函数传入。

如果您想要实现的是

2 3 4
- 您可以简单地执行:
1 2 3+1
。您只需在 kdb 中添加一个列表和一个原子即可。

有关更多详细信息,请参阅 https://code.kx.com/q4m3/6_Functions/#63-local-and-global-variables

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.