Julia:将多个参数传递给匿名函数

Fra*_*art 2 arguments anonymous-function julia

在" 匿名函数"部分的"Julia手册"中,提供的示例之一是(x,y,z)->2x+y-z.

有人可以告诉我如何将一组参数传递给这个函数吗?

x=(1,2,3); y=(2,3,4); z=(1,3,5).

And*_*ows 5

如果将x,y和z定义为数组,则可以调用该函数并将其传递给:

fun = (x,y,z)->2x+y-z
x=[1,2,3]
y=[2,3,4]
z=[1,3,5]
fun(x, y, z)
Run Code Online (Sandbox Code Playgroud)

给出结果:

3-element Array{Int64,1}:
 3
 4
 5
Run Code Online (Sandbox Code Playgroud)

但是如果你想用元组做这个,根据你的例子,你需要使用map:

x=(1,2,3)
y=(2,3,4)
z=(1,3,5)
map(fun, x, y, z)
Run Code Online (Sandbox Code Playgroud)

这给出了相同的结果,但这次是一个元组:

(3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

这是因为没有为元组定义*,+和 - 运算符,因此公式2x+y-z不起作用.通过map多次调用函数来传递标量来解决这个问题.