在作为函数调用应用的上下文中,q @符号是做什么的?

时间:2017-05-26 12:56:21

标签: kdb q-lang

这里的例子是怎么回事?

来源:http://code.kx.com/q/ref/select/#index-at

@[d;1 1 1;+;3]
((1 2 3;4 5 6 7);(17 18;19;20 21);(13 14;15 16 17 18;19 20))

1 个答案:

答案 0 :(得分:2)

http://code.kx.com/wiki/JB:QforMortals2/functions#Functional_Forms_of_Amend

  

@ [L; I; F; Y]
  L =你的清单
  I =要修改的元素索引
  f =要申请的职能   y = f

的第二个参数

您可以通过在函数中放置+并添加一些日志记录输出来查看它的功能。在这种情况下,它索引到第二个元素d@1,检索(8 9;10;11 12),添加3,结果为(11 12;13;14 15),使用它作为它的下一个输入,添加3,结果为{ {1}}。

(14 15;16;17 18)

或者可以看到使用over( q)@[d;1 1 1;{0N!("x is:",.Q.s1 x;"y is:",.Q.s1 y);x+y};3] ("x is:(8 9;10;11 12)";"y is:3") ("x is:(11 12;13;14 15)";"y is:3") ("x is:(14 15;16;17 18)";"y is:3") (1 2 3;4 5 6 7) (17 18;19;20 21) (13 14;15 16 17 18;19 20) ):

/