グラフィックスの話はいったんお休みにして、モジュールとやらを試してみます。
#| test_module.scm |#
(define-module test_module
(export hello)
(define (hello)
(print "hello")
)
)
helloと表示する関数を定義しただけの面白くもなんともないモジュールですが、とりあえず以下のコードを動かしてみます。
#| main.scm |#
(use test_module)
(hello)
実行結果は次の通りです。
> gosh .\main.scm
hello
はい、というわけで、test_module.scmで定義した関数を問題なく使えてます。完。
ちなみにtest_module.scmですが、main.scmと同じディレクトリに置くのではなく、(scheme-site-library-directory)によって得られるディレクトリに保存しました。このあたりの情報もリファレンス*1を参考にしています。リファレンス様様です。
また、test_module.scmを↑のディレクトリに保存する際に管理者権限が必要でした。筆者はpowershellを使っていますので、こういった場合は「Start-Process powershell -Verb runas」なる呪文*2 に頼ればよいらしいです。そんなこともわからずにpowershellを使ってて大丈夫なのかという気もしますが、このあたりも追々学んでいきたいところです。