【Julia入門】Juliaの関数② Juliaの関数の引数

統計や機械学習に関するプログラミングではPythonRが用いられることが多いですが、近年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/