Functional programming KDB和x2B/Q-超过(/)2个值列表

Functional programming KDB和x2B/Q-超过(/)2个值列表,functional-programming,kdb,q-lang,Functional Programming,Kdb,Q Lang,如何在两个输入列表上使用“结束”,每次从两个列表中选择一个元素 例如,有: (+/)[1;2 3] = +[+[1;2];3] = 6 如何执行以下操作: f:{x+y+z}; (f/)[1;2 3;22 33] = f[f[1;2;22];3;33] = 61 谢谢。“结束”每次接受两个参数,因此三个参数不是选项: 要实现您提到的功能,必须扭曲功能和输入: f:{x+y[0]+y[1]} (f/)1,flip(2 3;22 33) “over”每次接受两个参数,因此三个参数不是选项:

如何在两个输入列表上使用“结束”,每次从两个列表中选择一个元素

例如,有:

(+/)[1;2 3] = +[+[1;2];3] = 6
如何执行以下操作:

f:{x+y+z};

(f/)[1;2 3;22 33] = f[f[1;2;22];3;33] = 61
谢谢。

“结束”每次接受两个参数,因此三个参数不是选项:

要实现您提到的功能,必须扭曲功能和输入:

f:{x+y[0]+y[1]}
(f/)1,flip(2 3;22 33)
“over”每次接受两个参数,因此三个参数不是选项:

要实现您提到的功能,必须扭曲功能和输入:

f:{x+y[0]+y[1]}
(f/)1,flip(2 3;22 33)

这应该与您描述的完全一样,这是的折叠行为。当将其与3个参数一起使用时,函数将循环通过
y
z
列表,并将它们应用于上一个表达式的输出。考虑到您提供的数字:

x:1
y:2 3
z:22 33
wiki页面将其描述为:

[f[…f[f[x;y0;z0];y1;z1];…yn-1;zn-1];yn;zn]

这是伪代码,看起来像:

res = x + y[0] + z[0]    // pass this value forward
    = res + y[1] + z[1]

这应该与您描述的完全一样,这是的折叠行为。当将其与3个参数一起使用时,函数将循环通过
y
z
列表,并将它们应用于上一个表达式的输出。考虑到您提供的数字:

x:1
y:2 3
z:22 33
wiki页面将其描述为:

[f[…f[f[x;y0;z0];y1;z1];…yn-1;zn-1];yn;zn]

这是伪代码,看起来像:

res = x + y[0] + z[0]    // pass this value forward
    = res + y[1] + z[1]

Over behavior与您在两个示例中提到的完全相同,它将为您提供预期的结果。你在这方面面临什么问题?过度行为和你在两个例子中提到的完全一样,会给你预期的结果。你在这方面面临什么问题?over和“/”(斜杠)行为有一些不同。斜杠可以与多价函数一起使用。检查over和“/”(斜杠)行为是否存在一些差异。斜杠可以与多价函数一起使用。检查