Q Dili - Fiil ve Zarflar

Kdb + isimler, fiiller ve zarflara sahiptir. Tüm veri nesneleri ve işlevlerinouns. Verbs ifadelerdeki köşeli parantez ve parantez sayısını azaltarak okunabilirliği artırın. Adverbsyeni, ilişkili fiiller üretmek için ikili (2 bağımsız değişken) işlevleri ve fiilleri değiştirin. Zarfların ürettiği işlevlerederived functions veya derived verbs.

Her biri

Zarf each(`) ile gösterilen, ikili işlevleri ve fiilleri, listelerin kendileri yerine listelerin öğelerine uygulanacak şekilde değiştirir. Aşağıdaki örneğe bir göz atın -

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

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

Bir formu var Each"each" anahtar sözcüğünü kullanan monadik işlevler için. Örneğin,

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

Her Sol ve Her Sağ

İkili fonksiyonlar için Herbirinin iki çeşidi vardır: Each-Left (\:) ve Each-Right(/ :). Aşağıdaki örnek bunların nasıl kullanılacağını açıklamaktadır.

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