統計や機械学習に関するプログラミングではPython
やR
が用いられることが多いですが、近年Julia
も注目を集めています。そこで当シリーズではJulia
の基本構文からライブラリの用い方などについて取りまとめます。当記事ではJulia
の関数の引数について取りまとめを行いました。
・Julia
入門
https://www.hello-statisticians.com/julia
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/
引数
可変長引数
可変長引数はx...
のように...
を変数につけることで表します。下記が可変長引数の実行例です。
function f(x...)
sum = 0
for i = 1:length(x)
sum += x[i]
end
sum
end
println(f(3))
println(f(3,5))
println(f(3,5,7))
・実行結果
3
8
15
可変長引数は関数の最後の引数のみに設定できることも合わせて抑えておくと良いです。
g1(x, y...) = (x,y)
println(g1(1,2,3))
・実行結果
(1, (2, 3))
たとえば上記のようにg1(x, y...)
は実行可能ですが、下記のようなg2(x..., y)
を実行するとシンタックスエラーが出力されます。
g2(x..., y) = (x,y)
・実行結果
syntax: invalid "..." on non-final argument around In[2]:1
オプショナル引数
Julia
における関数の引数は下記のようにデフォルトの値を設定しておくことで、引数の使用の省略が可能になります。
f(x,y=1) = x+y
println(f(2))
println(f(2,5))
・実行結果
3
7
オプショナル引数の設定にあたっては可変長引数と同様に引数の末尾に置く必要があることに注意が必要です。
f1(x,y=1,z=2) = x+y+z
println(f1(3))
・実行結果
6
上記は実行可能ですが、下記のようにオプショナル引数の後に通常の引数を設定するとシンタックスエラーとなります。
f2(x=3,y,z) = x+y+z
・実行結果
syntax: optional positional arguments must occur at end around In[3]:1
キーワード引数
参考
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/