首页 文章

KDB命名空间的一个功能

提问于
浏览
2

我有一个功能

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}]
    }

当我尝试调用它时,它返回ERROR:sorted . 似乎在 {x: "i"$sorted["i"$x*count sorted]} 中无法访问函数内声明的变量 . 但是,如果我在函数外部声明它们,那么它们是可访问的(我可以成功调用该函数) . 有没有办法让它们可用于 {...}

1 回答

  • 1

    要访问 sorted ,您可以将其作为参数传递给函数 .

    {"i"$x["i"$y*count x]}[sorted]each q
    

    同样适用于第二个lambda和最后一行,再次将参数 qtk 传递给它:

    {x y y binr "i"$z}[qt;k]
    

相关问题