我有一个非常简单的问题。我试图谷歌,但无济于事。
我在OSX中使用Macports安装了Mono和F#。 F#interactive中存在一些错误,但如果您使用F#模式从emacs中调用它,它仍然可用。
现在,问题在于尽管F#存在并且有效,但即使是最简单的库/函数也不可用。 例如,以下代码无法运行,无法找到错误,总和, out :
let sumMultiples n =
[1..n]
|> List.filter (fun i -> (i%3 = 0 || i%5 = 0))
|> List.sum
let out = sumMultiples 999
printfn "%d" out
给出的错误是:
test.fs(6,12): error FS0039: The value, constructor, namespace or type 'sum' is not defined.
test.fs(10,17): error FS0039: The value or constructor 'out' is not defined.
stopped due to error
我在这里错过了什么?
答案 0 :(得分:2)
以下是我最近编写的一些说明,用于让F#在Mono下工作(在Mac上) https://github.com/Phrogz/laink/wiki/F%23s-on-Mac
您可以按照以下步骤操作代码:
~/code/fs harold$ cat test.fs
let sumMultiples n =
[1..n]
|> List.filter (fun i -> (i%3 = 0 || i%5 = 0))
|> List.sum
let out = sumMultiples 999
printfn "%d" out
~/code/fs harold$ fsc test.fs
Microsoft (R) F# 2.0 Compiler build 2.0.0.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
~/code/fs harold$ mono test.exe
233168
答案 1 :(得分:2)
这是与@jbssm通过评论进行讨论的摘要:
Failed to install
ctrl-c handler - Ctrl-C handling will not be available. Error was:
Exception has been thrown by the target of an invocation.
开始fsi。让我们从这里开始回答:
#quit;;
。 要解决新问题,您可能会发现the
following question的答案很有帮助。 我发现它有点奇怪,因为你的新F#配置 应该管用。 您是否使用或不使用MacPorts安装了新的Mono和F#,因为它是MacPorts上的known bug F#?如果您不使用MacPorts,我猜是有一些数据来自老单声道 在MacPorts上安装与新Mono冲突 安装。如果第一个建议不起作用,也许你应该这样做 请按照以下程序:
fsi
试用您的测试脚本。我的Mac上有运行F#的Mono 2.10(虽然我不使用 Emacs),所以我认为安装Mono 2.10没有任何问题 从头开始。
如果其中任何一项适合您,请提供后续信息。