
- 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
廣告