计算使用相同参数调用许多函数的结果的最大乘积

Sav*_*xey 3 functional-programming function j

我有这个代码:

f1 =: some function that returns list of numbers
f2 =: some function that returns list of numbers
f3 =: some function that returns list of numbers
f4 =: some function that returns list of numbers
max_mult_all =: (*/f1) >. (*/f2) >. (*/f3) >. (*/f4)
Run Code Online (Sandbox Code Playgroud)

有没有更好的初始化方法max_mult_all?如果我有数百个这样的功能怎么办?是否可以使用Insert(/)样式?

谢谢!

Eel*_*vex 5

是的,如果您首先打包每个功能,您可以*/列出每个功能,然后>./是结果:

>./ ; */ each (f1;f2;f3;f4) y
Run Code Online (Sandbox Code Playgroud)

此外,如果功能具有相同的形状和大小,您可以将它们放在动名词中

F =: f1`f2`f3`f4
Run Code Online (Sandbox Code Playgroud)

从中构建结果矩阵

M =: F `:0 ] y
Run Code Online (Sandbox Code Playgroud)

然后在矩阵上执行计算

>./*/"1 M
Run Code Online (Sandbox Code Playgroud)

  • 使用`every`而不是`each`则意味着你不需要使用`;`.即`> ./*/every(f1; f2; f3; f4)y` (4认同)