什么';它与kdb中的公共Lisp函数(map…)等效吗?

什么';它与kdb中的公共Lisp函数(map…)等效吗?,kdb,Kdb,我有一个多价kdb函数,我想通过从它的每个参数中取出一个原子(这是从一个表中取出的长度相同的列表)并将这些参数应用到所述函数来依次应用它 我觉得这应该很容易,我遗漏了一些基本的东西,但像kdb一样,很难找到解决方案 下面的代码片段符合我的要求,但仅适用于顶层(据我所知): 我不确定我是否完全理解了你的问题,但听起来你想一个元素一个元素地应用函数?显然,算术函数已经在KDB+中实现了这一点,但为了便于说明: q)a 8 1 9 5 4 6 6 1 8 5 q)b 4 9 2 7 0 1 9 2 1

我有一个多价kdb函数,我想通过从它的每个参数中取出一个原子(这是从一个表中取出的长度相同的列表)并将这些参数应用到所述函数来依次应用它

我觉得这应该很容易,我遗漏了一些基本的东西,但像kdb一样,很难找到解决方案

下面的代码片段符合我的要求,但仅适用于顶层(据我所知):


我不确定我是否完全理解了你的问题,但听起来你想一个元素一个元素地应用函数?显然,算术函数已经在KDB+中实现了这一点,但为了便于说明:

q)a
8 1 9 5 4 6 6 1 8 5
q)b
4 9 2 7 0 1 9 2 1 8
q)f:{[x;y] x*y}
q)a,'b
8 4
1 9
9 2
5 7
4 0
6 1
6 9
1 2
8 1
5 8
q)f .' a,'b
32 9 18 35 0 6 54 2 8 40
适当的参考资料包括:

(两个都有)


(应用)

实现这一点的惯用方法是
xf'y

q)a:1 2 3
q)b:1 2 3
q)a*'b
1 4 9
q)

(这对于算术来说当然是多余的,但对于其他事情来说是有用的)

附录“相当沉重。flip(a;b)可能更好。汉克斯,我设法弄明白我需要用‘但不是’部分把它们拉在一起!
q)a:1 2 3
q)b:1 2 3
q)a*'b
1 4 9
q)