Kdb lambda和投影组合的代码优化,每个操作都应用于传递的参数

Kdb lambda和投影组合的代码优化,每个操作都应用于传递的参数,kdb,Kdb,我能够从以下代码中获得所需的结果,但通过在lambda中使用lambda: Code: .up.dic:`a`b!(`ab`cd;`ef`gh); sd:2019.01.14; ed:2019.01.15; ({[m;d]{[m;d] 0N!m,d;}[m]@'d}@'raze .up.dic)[;sd+til(ed-sd)+1] Result: (`ab;2019.01.14) (`ab;2019.01.15) (`cd;2019.0

我能够从以下代码中获得所需的结果,但通过在lambda中使用lambda:

Code:

    .up.dic:`a`b!(`ab`cd;`ef`gh);
    sd:2019.01.14;
    ed:2019.01.15;
    ({[m;d]{[m;d] 0N!m,d;}[m]@'d}@'raze .up.dic)[;sd+til(ed-sd)+1]

Result:
    (`ab;2019.01.14)
    (`ab;2019.01.15)
    (`cd;2019.01.14)
    (`cd;2019.01.15)
    (`ef;2019.01.14)
    (`ef;2019.01.15)
    (`gh;2019.01.14)
    (`gh;2019.01.15)
有没有一种方法可以去掉内部lambda并在每个日期传递每个dict元素

{[m;d] 0N!m,d;}[m]@'d}/Can we get rid of this
在外部lambda中尝试了很多类似的操作,/:before
[;sd+til(ed sd)+1]
,但它导致了长度或类型错误。

您可以使用

在自定义函数中使用副词:

如果要对每一对执行其他操作,可以使用左右组合,并定义函数对每一对执行操作

例如,使用自定义定义的函数执行联接操作

q) my_func:{x,y} / x will be item from dict and y will be date from date list
q) raze raze[.up.dic] my_func/:\: sd+til(ed-sd)+1
你可以用

在自定义函数中使用副词:

如果要对每一对执行其他操作,可以使用左右组合,并定义函数对每一对执行操作

例如,使用自定义定义的函数执行联接操作

q) my_func:{x,y} / x will be item from dict and y will be date from date list
q) raze raze[.up.dic] my_func/:\: sd+til(ed-sd)+1
q) my_func:{x,y} / x will be item from dict and y will be date from date list
q) raze raze[.up.dic] my_func/:\: sd+til(ed-sd)+1