ภาษา Q - คำกริยาและคำวิเศษณ์

Kdb + มีนามกริยาและคำวิเศษณ์ อ็อบเจ็กต์ข้อมูลและฟังก์ชันทั้งหมดคือnouns. Verbs เพิ่มความสามารถในการอ่านโดยลดจำนวนวงเล็บเหลี่ยมและวงเล็บในนิพจน์ Adverbsแก้ไขฟังก์ชันและคำกริยา dyadic (2 อาร์กิวเมนต์) เพื่อสร้างคำกริยาใหม่ที่เกี่ยวข้อง ฟังก์ชันที่สร้างโดยคำวิเศษณ์เรียกว่าderived functions หรือ derived verbs.

แต่ละ

คำวิเศษณ์ eachแสดงโดย (`) แก้ไขฟังก์ชัน dyadic และคำกริยาเพื่อใช้กับรายการของรายการแทนที่จะเป็นรายการเอง ดูตัวอย่างต่อไปนี้ -

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

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

มีรูปแบบของ Eachสำหรับฟังก์ชัน monadic ที่ใช้คีย์เวิร์ด“ each” ตัวอย่างเช่น,

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

แต่ละซ้ายและแต่ละขวา

มีสองตัวแปรของแต่ละฟังก์ชันสำหรับฟังก์ชัน dyadic ที่เรียกว่า Each-Left (\ :) และ Each-Right(/ :). ตัวอย่างต่อไปนี้จะอธิบายวิธีการใช้งาน

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