如何使用另一个模块

时间:2010-11-24 18:22:30

标签: f# module

我有两个F#模块,比如A.fs中的A和B.f中的B模块。但是,当我使用模块B中的模块A时,F#看不到它。我已尝试open指令的所有组合,即open Aopen MyNamespace.A等等 - 没有任何帮助。我做错了什么?

2 个答案:

答案 0 :(得分:35)

我猜。 文件在项目资源管理器中显示的顺序非常重要。 如果要使用模块B中的模块A,则A.fs必须出现在B.fs。

之前

答案 1 :(得分:5)

由于F#不允许递归模块(IIRC),您唯一需要关心的是模块的顺序是正确的(您不能“转发声明”它们)以便您构建添加模块只需要前面的步骤。

如果您发现某个模块之间存在循环引用的情况,则必须将公共部分分解并删除循环。

这个问题可以澄清主题:F# mutual recursion between modules