将多个向量应用于函数
apply multiple vector to function
我有一个简单的函数 returns a table:
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
但这不起作用或组合向量而不是将 2 个组件分开。此外,当我让它工作时,我如何行绑定 tables 的结果列表?我来自 python 背景。
你需要使用 '
each-both :
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
会将其格式化为 table(我认为行绑定意味着将 table 附加在一起)
q)raze F'[a;b]
x y
--------
A B 1 -1
B C 1 -1
C D 1 -1
我有一个简单的函数 returns a table:
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
但这不起作用或组合向量而不是将 2 个组件分开。此外,当我让它工作时,我如何行绑定 tables 的结果列表?我来自 python 背景。
你需要使用 '
each-both :
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
会将其格式化为 table(我认为行绑定意味着将 table 附加在一起)
q)raze F'[a;b]
x y
--------
A B 1 -1
B C 1 -1
C D 1 -1