【Julia入門】Juliaの関数① Juliaの関数の定義

統計や機械学習に関するプログラミングではPythonRが用いられることが多いですが、近年Juliaも注目を集めています。そこで当シリーズではJuliaの基本構文からライブラリの用い方などについて取りまとめます。当記事ではJuliaの関数の定義について取りまとめを行いました。

Julia入門
https://www.hello-statisticians.com/julia

Julia 1.8 Documentation
https://docs.julialang.org/en/v1/

関数の定義

オーソドックスな関数の定義

Juliaにおけるオーソドックスな関数の定義にあたってはfunctionendを用いることで下記のような処理を実行します。

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.5Int型ではないことで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/