Kdb lambda和投影组合的代码优化,每个操作都应用于传递的参数
我能够从以下代码中获得所需的结果,但通过在lambda中使用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
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