- KDB+ 教程
- KDB+——主页
- Q 编程语言
- Q 编程语言
- Q 语言——类型转换
- Q 语言——时态数据
- Q 语言——列表
- Q 语言——索引
- Q 语言——词典
- Q 语言——表
- Q 语言——动词和副词
- Q 语言——连接
- Q 语言——函数
- Q 语言——内置函数
- Q 语言——查询
- Q——进程间通信
- Q——消息处理程序(.Z 库)
- KDB+ 有用资源
- KDB+——快速指南
- KDB+——有用资源
- KDB+——讨论
Q 语言——动词和副词
Kdb+ 有名词、动词和副词。所有数据对象和函数都是名词。动词通过减少表达式中方括号和圆括号的数量来增强可读性。副词修改二元(2 个参数)函数和动词以生成新的相关动词。副词产生的函数称为派生函数或派生动词。
每个
副词每个用(` )表示,它修改二元函数和动词以将其应用到列表项,而不是列表本身。以下示例中有一个 −
q)1, (2 3 5) / Join 1 2 3 5 q)1, '( 2 3 4) / Join each 1 2 1 3 1 4
对于单一函数,有一种形式的每个使用关键字“每个”。例如,
q)reverse ( 1 2 3; "abc") /Reverse a b c 1 2 3 q)each [reverse] (1 2 3; "abc") /Reverse-Each 3 2 1 c b a q)'[reverse] ( 1 2 3; "abc") 3 2 1 c b a
向左每个和向右每个
有两种用于二元函数的每个变体,称为向左每个(\:)和向右每个(/:)。以下示例说明如何使用它们。
q)x: 9 18 27 36
q)y:10 20 30 40
q)x,y / join
9 18 27 36 10 20 30 40
q)x,'y / each
9 10
18 20
27 30
36 40
q)x: 9 18 27 36
q)y:10 20 30 40
q)x,y / join
9 18 27 36 10 20 30 40
q)x,'y / each, will return a list of pairs
9 10
18 20
27 30
36 40
q)x, \:y / each left, returns a list of each element
/ from x with all of y
9 10 20 30 40
18 10 20 30 40
27 10 20 30 40
36 10 20 30 40
q)x,/:y / each right, returns a list of all the x with
/ each element of y
9 18 27 36 10
9 18 27 36 20
9 18 27 36 30
9 18 27 36 40
q)1 _x / drop the first element
18 27 36
q)-2_y / drop the last two element
10 20
q) / Combine each left and each right to be a
/ cross-product (cartesian product)
q)x,/:\:y
9 10 9 20 9 30 9 40
18 10 18 20 18 30 18 40
27 10 27 20 27 30 27 40
36 10 36 20 36 30 36 40
广告