【Julia入門】Juliaのモジュール① モジュールの概要と読み込み

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

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

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

モジュールの概要

概要

モジュール(module)は何らかの機能を実現するソースコードを取りまとめたものです。当記事では以下、Juliaに標準で用意されたモジュールの活用などについて確認を行います。

Mainモジュール

Juliaを実行する際にデフォルトで使用されるのがMainモジュールです。Mainモジュールでは下記のgcdのように基本的な関数が含まれます。

println(@__MODULE__)

println(gcd(27,72))

・実行結果

Main
9

上記のgcd関数は2つの引数の最大公約数を計算する関数であり、上記では2772の最大公約数である9が出力されたことが確認できます。

using文と既存モジュールの利用

関数を指定した読み込み

using文は下記のように『using モジュール名: 関数名』を実行することでモジュールの読み込みを行います。

using Statistics: mean, std

x = [1, 2, 3, 4, 5]

println(mean(x))
println(std(x))
println(var(x))

・実行結果

3.0
1.5811388300841898

UndefVarError: var not defined

Statisticsモジュールには分散を計算するvar関数が実装されている一方で、上記ではvar関数の読み込みを行わなかったのでUndefVarErrorが出力されました。このように関数名を指定する場合は指定した関数名のみを読み込むことができます。

モジュール全体の読み込みと注意点

モジュール全体を読み込む場合は下記のように『using モジュール名』を実行すれば良いです。

using Statistics

x = [1, 2, 3, 4, 5]

println(mean(x))
println(std(x))
println(var(x))

・実行結果

3.0
1.5811388300841898
2.5

上記のようにusing文を用いてモジュールの読み込みを行う場合、意図しない関数を読みこむ場合が生じやすいです。たとえば上記のStatisticsモジュールのvarなどは他で名称を使用する可能性があり得ます。

このような意図しない関数名の読み込みを行わないようにするにあたっては、前項のusing Statistics: mean, stdように読み込む関数名を指定するか、下記のようにStatisticsモジュールを読み込むなどの方法があります。

using Statistics: Statistics

x = [1, 2, 3, 4, 5]

println(Statistics.mean(x))
println(Statistics.std(x))
println(Statistics.var(x))

・実行結果

3.0
1.5811388300841898
2.5

参考

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