我有一个返回表的简单函数:
F[("A";"B");(1,-1)]
我想将此函数应用向量作为输入:
a:((`A;`B);(`B;`C);(`C;`D))
b:((1;-1);(1;-1);(1;-1))
我尝试过:
F each a,b
F each a cross b
,但这不起作用或不能合并向量,而不能将两个分量分开。另外,当我开始使用它时,如何行绑定结果表列表?我来自python背景。
答案 0 :(得分:2)
您需要同时使用'
:
q)F:{ ([] enlist x; enlist y)} /if F is simply creating a table
q)F[("A";"B");(1,-1)]
x y
---------
"AB" 1 -1
q)a:((`A;`B);(`B;`C);(`C;`D))
q)b:((1;-1);(1;-1);(1;-1))
q)F'[a;b] /each-both
+`x`y!(,`A`B;,1 -1)
+`x`y!(,`B`C;,1 -1)
+`x`y!(,`C`D;,1 -1)
raze
会将其格式化为表格(我认为行绑定意味着将表格附加在一起)
q)raze F'[a;b]
x y
--------
A B 1 -1
B C 1 -1
C D 1 -1