Q Language - Động từ & Phó từ

Kdb + có danh từ, động từ và trạng từ. Tất cả các đối tượng và chức năng dữ liệu lànouns. Verbs tăng cường khả năng đọc bằng cách giảm số lượng dấu ngoặc vuông và dấu ngoặc đơn trong biểu thức. Adverbssửa đổi hàm dyadic (2 đối số) và động từ để tạo ra các động từ mới, có liên quan. Các chức năng do trạng từ tạo ra được gọi làderived functions hoặc là derived verbs.

Mỗi

Trạng từ each, được ký hiệu là (`), sửa đổi các hàm và động từ dyadic để áp dụng cho các mục của danh sách thay vì chính danh sách. Hãy xem ví dụ sau:

q)1, (2 3 5)       / Join
1 2 3 5

q)1, '( 2 3 4)     / Join each
1 2
1 3
1 4

Có một dạng Eachcho các hàm đơn nguyên sử dụng từ khóa “từng”. Ví dụ,

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

Mỗi bên trái và mỗi bên phải

Có hai biến thể của Mỗi cho các hàm dyadic được gọi là Each-Left (\ :) và Each-Right(/ :). Ví dụ sau giải thích cách sử dụng chúng.

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