f# - F#'s "Hello, world"带有 2 个 fs 文件

标签 f#

我从 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 Programmodule 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/

相关文章:

f# - 如何在 F# 语言中暂停控制台

ide - F# 类型推断(编译器输出)

inheritance - F# 和继承建模

.net - FParsec 中的尾递归

f# - Continuation Passing Style 计算表达式

f# - 如何使用 Fable (F#) 进行 base64 编码?

f# - 关联性、优先级和 F# Pipe-forward

f# - 如何在 F# 中实现 “efficient generalized fold”?

performance - 优化 Euler #4 的 F# 答案

f# - 为什么这个计算表达式构建器在我的 for 循环中期望 "unit"?