如何创建一个包含n个变量的函数(Julia)
对于固定n,我想创建一个带有n变量的函数
f(x_1, ..., x_n)
例如,如果n=3,我想创建一个算法,使得
f(x_1, x_2, x_3) = x_1 + x_2 + x_3
为每个都有一个算法会非常好n:
f(x_1, ..., x_n) = x_1 + ... + x_n
我不知道如何声明函数以及如何创建n变量。
感谢您的帮助,
回答
在朱莉娅你可以做
function f(x...)
sum(x)
end
现在:
julia> f(1,2,3)
6
请注意,在函数中f, ,x仅被视为 a ,Tuple因此您可以做任何想做的事情(包括要求元素类型等)。
更一般地,您可以定义function f(x...;y...). 让我们试一试
function f(x...;y...)
@show x
@show Dict(y)
end
现在运行它:
julia> f(1,2,"hello";a=22, b=777)
x = (1, 2, "hello")
Dict(y) = Dict(:a => 22, :b => 777)
Dict{Symbol, Int64} with 2 entries:
:a => 22
:b => 777
最后,另一种(可能不太优雅)方式可能是:
g(v::NTuple{3,Int}) = sum(v)
这迫使v成为一个3元素Tuple并被g称为g((1,2,3))