統計や機械学習に関するプログラミングではPython
やR
が用いられることが多いですが、近年Julia
も注目を集めています。そこで当シリーズではJulia
の基本構文からライブラリの用い方などについて取りまとめます。当記事ではJulia
の関数の定義について取りまとめを行いました。
・Julia
入門
https://www.hello-statisticians.com/julia
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/
関数の定義
オーソドックスな関数の定義
Julia
におけるオーソドックスな関数の定義にあたってはfunction
とend
を用いることで下記のような処理を実行します。
function add(x,y)
return x + y
end
println(add(1,2))
println(add(2,3))
・実行結果
3
5
関数の簡易的な定義
前項ではフォーマルな関数の定義の方法について確認を行いましたが、下記のように簡易的に定義を行うことも可能です。
add(x,y) = x + y
println(add(1,2))
println(add(2,3))
・実行結果
3
5
上記のadd(x,y)=x+y
は$f(x,y)=x+y$のような数式における関数の定義と対応させながら抑えておくと良いと思います。また、下記のように複数の戻り値を返すように関数の定義を行うことも可能です。
sum_diff(x,y) = (x+y, x-y)
print(sum_diff(2,3))
・実行結果
(5, -1)
関数の定義における型指定
引数の型指定
関数の定義にあたっては下記のように引数の型を指定することができます。
function add_typed(x::Int, y::Int)
return x + y
end
println(add_typed(1,2))
println(add_typed(2,3))
println(add_typed(2,3.5))
・実行結果
3
5
MethodError: no method matching add_typed(::Int64, ::Float64)
上記では3
行目の3.5
がInt
型ではないことでMethodError
が出力されたことが確認できます。
戻り値の型指定
前項では「引数の型指定」を取り扱いましたが、下記のように戻り値の型指定も行うことができます。
function add_typed(x::Int, y::Int)::Float64
return x + y
end
println(add_typed(1,2))
println(add_typed(2,3))
・実行結果
3.0
5.0
上記ではadd_typed(x::Int, y::Int)::Float64
のように関数を定義することで戻り値がFloat
型で得られたことが確認できます。
参考
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/