在 ocaml 中循环构建,没有办法绕过它吗?
circular build in ocaml, no way around it?
所以我有一个 faction
类型,它有一个 pawns
的列表,但是 pawn
类型包括一个 link 到 faction
两者都在不同的模块中,在不同的文件中。将它们放在一个文件中会破坏我组织源代码的方式,而且无论如何它都不起作用
我看不到循环构建的任何方法,有解决方法吗?
我试过使用第三个模块,它可以是两者之间的 link,但这似乎太不方便了
如果两个编译单元(又名文件)相互依赖,那么最简单的方法是将这种依赖分解为第三个文件,并使这两个文件依赖于它。另一种解决方案是使有问题的部分多态化,并独立实例化具体类型,如果没有一个很好的例子,这个概念很难说明,所以如果你能向我们提供更多关于你的代码及其组织的见解,我们可能会更有帮助。
所以我有一个 faction
类型,它有一个 pawns
的列表,但是 pawn
类型包括一个 link 到 faction
两者都在不同的模块中,在不同的文件中。将它们放在一个文件中会破坏我组织源代码的方式,而且无论如何它都不起作用
我看不到循环构建的任何方法,有解决方法吗?
我试过使用第三个模块,它可以是两者之间的 link,但这似乎太不方便了
如果两个编译单元(又名文件)相互依赖,那么最简单的方法是将这种依赖分解为第三个文件,并使这两个文件依赖于它。另一种解决方案是使有问题的部分多态化,并独立实例化具体类型,如果没有一个很好的例子,这个概念很难说明,所以如果你能向我们提供更多关于你的代码及其组织的见解,我们可能会更有帮助。