这个 kbd 函数是如何工作的?
How does this kbd function work?
谁能解释一下下面的函数? kdb 在这里如何利用 x?
我将原始函数更改为 "func" 我知道它使用 que 中指定的查询来查询这两个函数。问题是我不知道那些 x 0 和 x 0 1 在这里是如何工作的。我知道 0 是索引 1,1 是索引 2,x 是参数。
svcs:`TEST:1`TEST:2
que: (`$"select count sym from trades";`$"select sum size from trades")
{func[x 0;string x 1],x 0 1}each svcs cross que
x 作为两个元素列表传入 "each" 调用函数时。
暂时忘记功能描述,只需添加一些日志记录以更清楚地看到事情:
q)svcs cross que
TEST:1 select count sym from trades
TEST:1 select sum size from trades
TEST:2 select count sym from trades
TEST:2 select sum size from trades
q){show enlist "x 0 is ",string x 0;show enlist "x 1 is ",string x 1;show raze "
x 0 1 is ",(string x 0)," & ", (string x 1)}each svcs cross que;
"x 0 is TEST:1"
"x 1 is select count sym from trades"
"x 0 1 is TEST:1 & select count sym from trades"
"x 0 is TEST:1"
"x 1 is select sum size from trades"
"x 0 1 is TEST:1 & select sum size from trades"
"x 0 is TEST:2"
"x 1 is select count sym from trades"
"x 0 1 is TEST:2 & select count sym from trades"
"x 0 is TEST:2"
"x 1 is select sum size from trades"
"x 0 1 is TEST:2 & select sum size from trades"
或个别例子:
q)x:(`TEST:1;`$"select count sym from trades")
q)x 0
`TEST:1
q)x 1
`select count sym from trades
q)x 0 1
`TEST:1`select count sym from trades
x 0 1 索引并检索第一个和第二个元素(返回
你是对的,x 0
或 x 1
与 x[0]
或 x[1]
相同(请参阅下面索引列表中的 link),除了可能问题是 x
是什么并不明显。
由于副词 each
函数被执行 四次 次,对 svcs cross que
中的每个项目执行一次
见;
q)count svcs cross que
4
然后 svcs cross que
中的每个项目都有两个项目。
q)count each svcs cross que
2 2 2 2
所以在第一次执行时,x
是svcs cross que
的第一项,依此类推。
q)first svcs cross que
`TEST:1`select count sym from trades
q)(first svcs cross que) 0
`TEST:1
q)(first svcs cross que) 1
`select count sym from trades
q)(first svcs cross que) 0 1
`TEST:1`select count sym from trades
参考
谁能解释一下下面的函数? kdb 在这里如何利用 x?
我将原始函数更改为 "func" 我知道它使用 que 中指定的查询来查询这两个函数。问题是我不知道那些 x 0 和 x 0 1 在这里是如何工作的。我知道 0 是索引 1,1 是索引 2,x 是参数。
svcs:`TEST:1`TEST:2
que: (`$"select count sym from trades";`$"select sum size from trades")
{func[x 0;string x 1],x 0 1}each svcs cross que
x 作为两个元素列表传入 "each" 调用函数时。
暂时忘记功能描述,只需添加一些日志记录以更清楚地看到事情:
q)svcs cross que
TEST:1 select count sym from trades
TEST:1 select sum size from trades
TEST:2 select count sym from trades
TEST:2 select sum size from trades
q){show enlist "x 0 is ",string x 0;show enlist "x 1 is ",string x 1;show raze "
x 0 1 is ",(string x 0)," & ", (string x 1)}each svcs cross que;
"x 0 is TEST:1"
"x 1 is select count sym from trades"
"x 0 1 is TEST:1 & select count sym from trades"
"x 0 is TEST:1"
"x 1 is select sum size from trades"
"x 0 1 is TEST:1 & select sum size from trades"
"x 0 is TEST:2"
"x 1 is select count sym from trades"
"x 0 1 is TEST:2 & select count sym from trades"
"x 0 is TEST:2"
"x 1 is select sum size from trades"
"x 0 1 is TEST:2 & select sum size from trades"
或个别例子:
q)x:(`TEST:1;`$"select count sym from trades")
q)x 0
`TEST:1
q)x 1
`select count sym from trades
q)x 0 1
`TEST:1`select count sym from trades
x 0 1 索引并检索第一个和第二个元素(返回
你是对的,x 0
或 x 1
与 x[0]
或 x[1]
相同(请参阅下面索引列表中的 link),除了可能问题是 x
是什么并不明显。
由于副词 each
函数被执行 四次 次,对 svcs cross que
见;
q)count svcs cross que
4
然后 svcs cross que
中的每个项目都有两个项目。
q)count each svcs cross que
2 2 2 2
所以在第一次执行时,x
是svcs cross que
的第一项,依此类推。
q)first svcs cross que
`TEST:1`select count sym from trades
q)(first svcs cross que) 0
`TEST:1
q)(first svcs cross que) 1
`select count sym from trades
q)(first svcs cross que) 0 1
`TEST:1`select count sym from trades
参考