我从 C# 背景到 F#。到目前为止,我编写了一些简单的程序,并在 F# 交互方面花费了大量时间。
我一直在用两个 .fs 文件创建一个 VS F# 项目。
示例代码:
// part 1: functions
let rec gcd (a : uint64) (b : uint64) =
if b = 0UL then a
else gcd b (a % b)
// part 2: main()
let a, b = (13UL, 15UL)
do printfn "gcd of %d %d = %d" a b (gcd a b)
我想要两个 .fs 文件,即 Alg.fs 和 Program.fs,以便 Program.fs 包含我正在工作的代码,而 Alg.fs 包含算法。
采取的步骤:
我已经创建了这两个文件。编译器报错:
Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule'
我已插入
module Program
和 module Alg
.编译后的程序只执行 Alg.fs 中的代码,完全忽略 Program.fs...我在 Visual Studio 2010 中使用 F# 2.0。
附言我用谷歌搜索并检查了 some posts ,并阅读有关 modules 的文档看到亲戚questions在问之前。
最佳答案
听起来这是一个项目中的文件顺序问题。最后一个文件是入口点(“main 方法”),听起来你最后有 Alg.fs,最后你需要 Program.fs。您可以通过 VS 解决方案资源管理器中的右键单击上下文菜单重新排序它们。
关于f# - F#'s "Hello, world"带有 2 个 fs 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10181118/