統計や機械学習に関するプログラミングではPython
やR
が用いられることが多いですが、近年Julia
も注目を集めています。そこで当シリーズではJulia
の基本構文からライブラリの用い方などについて取りまとめます。当記事では新しいモジュールの定義について取りまとめを行いました。
・Julia
入門
https://www.hello-statisticians.com/julia
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/
モジュールの定義
モジュールは下記のように定義することができます。
module Greeting1
hello(name) = println("Hello, $(name).")
end
Greeting1.hello("Julia")
・実行結果
Hello, Julia.
上記ではGreeting1
モジュールにhello
関数の定義を行いました。Greeting1.hello
を実行することでhello
関数を実行することができます。
モジュールの相対パス指定
前節ではモジュールの定義のみを行いましたが、Main
モジュールからの相対パスに基づいてモジュールを読み込むことができます。下記ではMain
モジュールからの相対パス.Greeting2
を用いることでGreeting2
の読み込みを行いました。
module Greeting2
export hello
hello(name) = println("Hello, $(name).")
goodbye(name) = println("Goodbye, $(name).")
end
Greeting2.hello("Julia")
Greeting2.goodbye("Julia")
using .Greeting2
hello("Julia")
goodbye("Julia")
・実行結果
Hello, Julia.
Goodbye, Julia.
Hello, Julia.
UndefVarError: goodbye not defined
モジュールを読み込む際にモジュール定義の中でexport
で指定した関数はモジュールを読み込むとそのまま使用することができます。上記の例ではexport hello
があるので、hello
はそのまま実行できる一方でgoodbye
はそのまま実行できないことが確認できます。
参考
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/