函数的 KDB 命名空间
KDB namespace of a function
我有一个功能
f:{[t;c];
q: (1.0;0.8;0.6;0.4;0.2);
tc:(cols[t] where cols[t] like c)[0];
sorted:desc t[tc];
qt:( {x: "i"$sorted["i"$x*count sorted]} each q) ! q;
k:asc key qt;
{[t;c;n;f] @[t;n;:;f t c]}[t;c;`quint;{[x] qt k k binr "i"$x}]
}
当我尝试调用它时,它 returns ERROR:sorted。似乎函数内声明的变量在 {x: "i"$sorted["i"$x*count sorted]}
中不可访问。但是,如果我在函数外部声明它们,那么它们就可以访问(并且我可以成功调用该函数)。有没有办法让 {...}
可以使用它们?
要访问 sorted
,您可以将其作为参数传递给函数。
{"i"$x["i"$y*count x]}[sorted]each q
同样适用于第二个 lambda 和最后一行,再次将参数 qt
和 k
传递给它:
{x y y binr "i"$z}[qt;k]
我有一个功能
f:{[t;c];
q: (1.0;0.8;0.6;0.4;0.2);
tc:(cols[t] where cols[t] like c)[0];
sorted:desc t[tc];
qt:( {x: "i"$sorted["i"$x*count sorted]} each q) ! q;
k:asc key qt;
{[t;c;n;f] @[t;n;:;f t c]}[t;c;`quint;{[x] qt k k binr "i"$x}]
}
当我尝试调用它时,它 returns ERROR:sorted。似乎函数内声明的变量在 {x: "i"$sorted["i"$x*count sorted]}
中不可访问。但是,如果我在函数外部声明它们,那么它们就可以访问(并且我可以成功调用该函数)。有没有办法让 {...}
可以使用它们?
要访问 sorted
,您可以将其作为参数传递给函数。
{"i"$x["i"$y*count x]}[sorted]each q
同样适用于第二个 lambda 和最后一行,再次将参数 qt
和 k
传递给它:
{x y y binr "i"$z}[qt;k]