5
this
のように、現在のモジュールを参照するキーワードはありますか?たとえば、ここにギャップを入れてはどうでしょうか。OCamlの現在のモジュールへの参照
module Test: Test_Type =
struct
module N = Test_Outside(___);;
end;;
ここで、Test_OutsideはTest_Typeでパラメータ化された別のモジュールです。
this
のように、現在のモジュールを参照するキーワードはありますか?たとえば、ここにギャップを入れてはどうでしょうか。OCamlの現在のモジュールへの参照
module Test: Test_Type =
struct
module N = Test_Outside(___);;
end;;
ここで、Test_OutsideはTest_Typeでパラメータ化された別のモジュールです。
いいえ、それはありませんが、あなたが必要とするのは奇妙です。
再帰的なモジュール(基本言語の拡張子)で変なトリックをすることはできますが、問題を定式化する方法に問題があり、実際にはそのような自己参照は必要ありません。
は常につもり最後の問題として再帰的ルートを行く、私の経験では manual for recursive modulesを参照してください。時間をかけて設計を単純化し、より階層化されたアプローチを使用して依存関係のサイクルを解消する必要があります。たとえば、ここではNをTestで定義し、同時にTestを参照します。しかし、Test_Outsideモジュールは、Nを使ってTestのNや他の部分について知る必要がありますか、Testの "基本"定義、つまり "Nより前"の定義のみを使用していますか? 2つの別々の「テスト」モジュールを使用することができます。第2のモジュールは最初に拡張します。
module Test_Outside(Test : Small_Test_Type) = struct ... end
module InnerTest : Small_Test_Type = struct ... end
module Test : Test_type = struct
include InnerTest
module N = Test_Outside(InnerTest)
...
end