Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 如何从一个模块使用另一个模块_F#_Module - Fatal编程技术网

F# 如何从一个模块使用另一个模块

F# 如何从一个模块使用另一个模块,f#,module,F#,Module,我有两个F#模,比如a.fs中称为a的模和B.fs中称为B的模。但是,当我使用模块B中的模块A时,F#看不到它。我已经尝试了open指令的所有组合,即opena,openmynamespace.A,等等-没有任何帮助。我做错了什么?我在猜。 文件在project explorer中的显示顺序很重要。 当你想从模块B中使用模块A时,A.fs必须出现在B.fs之前。因为F#不允许递归模块(IIRC),你唯一需要关心的是模块的顺序是正确的(你不能“向前声明”它们),这样你就可以一步一步地添加一个只需要

我有两个F#模,比如a.fs中称为a的模和B.fs中称为B的模。但是,当我使用模块B中的模块A时,F#看不到它。我已经尝试了
open
指令的所有组合,即
opena
openmynamespace.A
,等等-没有任何帮助。我做错了什么?我在猜。 文件在project explorer中的显示顺序很重要。 当你想从模块B中使用模块A时,A.fs必须出现在B.fs之前。

因为F#不允许递归模块(IIRC),你唯一需要关心的是模块的顺序是正确的(你不能“向前声明”它们),这样你就可以一步一步地添加一个只需要前面模块的模块

如果您发现在一组模块之间有一个循环引用,那么您必须考虑公共部分并删除该循环


另一个问题可以澄清主题:

是的,如果我回忆正确,您可以使用shift up/down移动文件。在我的机器上,它是ALT+up/ALT+down。在我的机器上,视觉顺序没有映射到项目系统提供给
fsc.exe
(这在VS输出中的调用命令行中被清除)[
Ctrl-Alt-O
]窗口)。我编辑了
.fsproj
并对其重新排序,一切正常(一个原因可能是有
和/或各种
@SargeBorsch,我想这是对F#history的最好猜测。非常感谢!经过几个小时的搜索,这对我很有用。你的两个模块是否有相同的命名空间?如果它们有
打开一个
,如果它们的顺序正确(如@PetPaulsen建议的那样),应该足够了。).可能的副本