在q中,二元拉链操作由'
完成。即。
l1:("a1";"a2")
l2:("b1";"b2")
(l1,'l2)~("a1b1";"a2b2")
我将此'
解析为二元运算符'[g;l2]
,其中g
是将列表上的某些二元函数投影到一元函数上,例如g:,[l1;]
。
因此,如果我们想在压缩操作期间执行除,
之外的任何其他地图,我将重新定义g
。
但是,'[g;l2]
并未向我提供预期的列表输出,而是返回func
问题是:如何在压缩操作期间应用任意地图?例如。我如何在示例l1 f' l2
中执行f:,
之类的操作,但一般f
某些二元运算符列出项目?
感谢您的帮助
答案 0 :(得分:1)
如何在压缩操作期间应用任意地图?
像这样:
q)f:{x+y}
q)f'[10*x;x:til 5]
0 11 22 33 44
如果你喜欢中缀符号,你也可以
q)(10*x) f' til 5
0 11 22 33 44
请注意,'[g;l1]
是composition。如果要创建投影,请执行
q)g:,'[l1;]
q)g l2
"a1b1"
"a2b2"