我正在使用F#电源工具,它为我提供了一种在F#解决方案中创建文件夹的便捷方法。

现在,我在解决方案中有2个类似的控制台应用项目。 两个项目都包含一个util文件夹。 在一个项目中,util文件夹包含带功能的命名空间模块。 在其他项目中,util文件夹包含命名空间的枚举和类定义。

命名空间以下列方式完成:ProjectName.Folder

这两个项目都有Program.fs文件,带有“EntryPoint”主函数。 Program.fs是解决方案中的最后一个文件。 主要功能在“ProjectName”命名空间内。

因为两个文件都具有相同的根命名空间,所以当我尝试“打开”子命名空间并使用其他文件中的代码时,我希望看到Program.fs文件中的子命名空间。

那么在第一个项目中使用模块但不在另一个包含子命名空间中的类定义的项目...当我尝试在第二个项目中打开一个子命名空间时,我需要提供完全限定的命名空间,即使两个文件共享相同的命名空间根。

在第一个项目中,我可以直接引用子命名空间而无需指定根命名空间 - 它只是可见的。

这让我很困惑,特别是有时候我会通过在项目中上下移动带有main()的Program.fs文件来解决编译问题,突然间我可以编译。

如果描述的问题与解决方案资源管理器中看不到的项目结构(文件)中的问题有关,或者我遗漏了与F#语法相关的内容以及如何使用(开放)命名空间模块与函数相比命名空间类,那么您有任何想法吗? (类型)? 可能是F#powertools在这些文件夹中创建文件夹和文件时会以某种方式导致问题吗?

我可以提供代码示例。 它们主要来自教程,但我想尽量缩短问题。

编辑1

我刚刚将一个新项目中的代码合并到一起进行测试,结果发现,当我打开一个命名空间模块时,只能提供一个相对命名空间的路径到该模块,但是当我打开时一个名称空间,为了使用那里定义的类,我需要提供该命名空间的完全限定路径,即使我从同一个根命名空间打开该命名空间。 有人可以证实这种行为吗? 与此同时,我将通过http://en.wikibooks.org/wiki/F_Sharp_Programming/Modules_and_Namespaces进行挖掘

===============>>#1 票数:4

至于包含文件夹的文件顺序,请使用xml编辑器检查实际的fsproj。 我有PowerTools创建正确的文件路径,即Folder \\ MyFile.fs,但把它放在错误的地方。 文件夹中的所有文件必须相互直接显示。 例如,你不能这样做一个订单:

FolderA \\ File1.fs,File2.fs,FolderA \\ File3.fs

  ask by Ivan Davidov translate from so

未解决问题?本站智能推荐:

1回复

原子和f#的编译问题

大家好,我正在尝试编译一个称为2v2的函数,该函数可以乘以任意倍数2。我正在将Atom与ionide一起使用,但是当我使用f#交互式程序运行它时,它给了我这个错误,提示它看不到其余功能。 有什么建议么?
3回复

F#代码有什么问题?

在F#中,我试图获取给定列表的最后一个元素。 我在下面写了代码 但是当我试图在F#Interactive中执行它时,它抱怨如下 错误FS0001:此表达式应该是int类型,但这里有类型'a *'b *'c *'d *'e 我只是想知道上面的代码有什么问题。 我知道有
2回复

F# - 如果更改则设置属性

我有一个具有属性的类,这些属性在调用setter时会触发一些副作用,例如触发的更改事件和/或渲染操作。 我怎样才能设计一个只在其值需要改变时才设置属性的函数? 有了refs,我会做这样的事情: 但是,可变属性不是引用,我似乎无法找到任何方法来设计将编译的东西。 例如,
1回复

如何解决f#树的插入功能问题

请为创建树的插入函数提供一些帮助。 给定字符串列表中的值应插入树中的每个分支和叶子。 我试图解决此问题并得到一个非常接近的答案,但是我无法正确编写该函数以插入所有字符串值。 码: 测试: insertTree ["4"; "5";"6"] (Branch [("1", (Bra
1回复

如何修复此F#3.0引用错误

我下载了一个Github项目,在VS 2012中打开该项目后,系统进行了自动升级。 我收到了一个我不太明白的错误。 它与报价有关。 这是我复制粘贴在下面的文件: https : //github.com/dmitry-a-morozov/fsharp-wpf-mvc-series/bl
1回复

使用f#解析日志文件

我正在尝试解析iis日志文件中的数据。 每行都有一个我需要的日期: 我需要一个名称和电子邮件地址: 我从这样得到正确的列开始。 这部分工作正常。 现在我需要解析上面的内容并获取日期,名称和电子邮件,但我很难搞清楚如何做到这一点。 到目前为止,我有这个,这给了
1回复

如何使用F#格式化字符串以在文件中打印

这段代码以f,ffffff (带逗号)格式在文件中打印浮点数,并且这些数字是连续的,但是我需要像f.ffffff (带点号)那样打印它,并在每个数字之后跳过一行,所以每个数字都有自己的一行。 关于如何做的任何想法? 代码已编辑
1回复

F#可以更新类中的不可变绑定(创建具有更改的指定绑定的新对象吗?)

F#是否有办法更新类中的不可变绑定? 或者,更具体地说,是否有一种方法可以复制类定义并更改单个不可变条目? 例如,在OCaml中,我们可以编写如下代码 let foo = object val fuz = 1 method get_fuz = fuz method inc_fu
1回复

F#和C#Web服务无法打开名称空间

我想使用Daniel Mohl撰写的VS2012 F#和C#Web服务模板。 但是,我遇到了一个令人沮丧的问题,即无法在脚本文件中使用生成的代码: namespace FSharpWcfServiceApplicationTemplate open System open FSharpWc
3回复

F#:有些,无,或异常?

我最近一直在教自己F#,我来自命令式(C ++ / C#)背景。 作为一个练习,我一直在研究可以用矩阵做东西的函数,比如添加,乘法,得到决定因素等等。在这方面一切都很顺利,但我发现在涉及处理时我可能没有做出最好的决定输入无效,例如: 因此,虽然这在技术上有效,但这适用于功能语言吗?