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을 사용하여 N 및 다른 부분의 Test를 알 필요가 있습니까? 아니면 Test의 "기본"정의를 "N 이전"으로 사용합니까? 두 개의 별도 "테스트"모듈을 사용할 수 있으며 두 번째 모듈은 첫 번째 모듈을 확장합니다.
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