我有这个功能 f
f:{{z+x*y}[x]/[y]}
Run Code Online (Sandbox Code Playgroud)
我可以在f没有第三个参数的情况下调用,但是我得到了,但是如果{z+x*y}没有第三个参数,内部能够完成吗?
如果给出一个带有两个参数的函数的单个列表,kdb将假设您希望第一个为x而余数为y(在over和scan的上下文中,通常不是).例如:
q){x+y}/[1;2 3 4]
10
Run Code Online (Sandbox Code Playgroud)
也可以通过以下方式实现:
q){x+y}/[1 2 3 4]
10
Run Code Online (Sandbox Code Playgroud)
这很可能是你的例子中发生的事情.
编辑:
特别是,您可以使用此功能
q){{z+x*y}[x]/[y]}[2;3 4 5 6]
56
Run Code Online (Sandbox Code Playgroud)
相当于(由于x的投影):
q){y+2*x}/[3 4 5 6]
56
Run Code Online (Sandbox Code Playgroud)
相当于(由于我原来的观点):
q){y+2*x}/[3;4 5 6]
56
Run Code Online (Sandbox Code Playgroud)
这解释了为什么不需要"第三"参数