使用lambda进行KDB/Q功能更新

chr*_*ise 0 kdb

我试图在功能更新中使用一些lambdas.简单的例子就是

parse "update cfoo:foo'[c] from t"

!
`t

falseb
,`cfoo!,((`func;`foo);`c)
Run Code Online (Sandbox Code Playgroud)

那个解析树中的`func是什么?我需要在下面更换它?

![`t;();0b;(enlist `cfoo)!enlist ((`func;`foo);`c)]
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 5

解析与你相同的东西给了我一个不同于你的东西:

q)parse "update cfoo:foo'[c] from t"
!
`t
()
0b
(,`cfoo)!,((';`foo);`c)
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

![`t;();0b;(enlist`cfoo)!enlist((';`foo);`c)]
Run Code Online (Sandbox Code Playgroud)

以上内容直接来自`q提示符.你要么解析不同的东西,要么你的GUI/IDE在最终输出中改变了一些东西.

func是什么都没有,但'你申请[c].这是一个我改变了'其他东西的例子:

q)parse "update cfoo:foo/:[c] from t"
!
`t
()
0b
(,`cfoo)!,((/:;`foo);`c)
Run Code Online (Sandbox Code Playgroud)