Kdb +有名词,动词和副词.所有数据对象和函数都是名词. 动词通过减少表达式中的方括号和括号的数量来增强可读性. 副词修改二元(2个参数)函数和动词以产生新的相关动词.副词产生的函数称为派生函数或派生动词.
每个
副词每个,用(`)表示,修改二元函数和动词以应用于列表项而不是列表本身.看看以下示例 :
q)1,(2 3 5)/加入 1 2 3 5 q)1,'(2 3 4)/加入每个 1 2 1 3 1 4
对于使用关键字"each"的monadic函数,有一种 Each 形式.例如,
q)reverse ( 1 2 3; "abc") /Reversea b c1 2 3q)each [reverse] (1 2 3; "abc") /Reverse-Each3 2 1c b aq)'[reverse] ( 1 2 3; "abc")3 2 1c b a
每个左 - 右 -
每个二元函数有两种变体,称为每个左 - (\ :)和每个 - 右(/:).以下示例说明如何使用它们.
q)x: 9 18 27 36q)y:10 20 30 40q)x,y / join9 18 27 36 10 20 30 40q)x,'y / each9 1018 2027 3036 40q)x: 9 18 27 36q)y:10 20 30 40q)x,y / join9 18 27 36 10 20 30 40q)x,'y / each, will return a list of pairs9 1018 2027 3036 40q)x, \:y / each left, returns a list of each element / from x with all of y 9 10 20 30 4018 10 20 30 4027 10 20 30 4036 10 20 30 40q)x,/:y / each right, returns a list of all the x with / each element of y 9 18 27 36 109 18 27 36 209 18 27 36 309 18 27 36 40q)1 _x / drop the first element18 27 36q)-2_y / drop the last two element10 20q) / Combine each left and each right to be a / cross-product (cartesian product) q)x,/:\:y9 10 9 20 9 30 9 4018 10 18 20 18 30 18 4027 10 27 20 27 30 27 4036 10 36 20 36 30 36 40