私はmy-mod.rkt
と呼ばれる次のファイルがあるとしましょう。1つのRacketプログラムでモジュールを何回もインスタンス化できますか?
#lang racket ;; my-mod.rkt
(displayln "Module ran")
私は明らかにREPLまたは別のスクリプトでモジュールをインスタンス化することによって、このファイルを実行することができます
(require "my-mod.rkt")
Module ran
を出力します。
しかし、この方法でモジュールを2回実行できない場合は、例えば、私は二回my-mod.rkt
が必要な場合:
(require "my-mod.rkt")
(require "my-mod.rkt")
モジュールは、一度だけインスタンス化されます。これは通常あなたが必要とする目的のために必要なものですが、この場合、モジュールをインスタンス化することは私が保存したい副作用があります。
もちろん、私は別のサブプロセスでこれを実行するためにfind-exe
を使用することができます。
(require compiler/find-exe)
(system* (find-exe) "my-mod.rkt")
をしかし、私は私が何をしたいのかされていない、別のOSレベルのプロセスでこのプログラムを実行していますよ。
だから、私は同じラケットプログラムで二回モジュールをインスタンス化することができますか?