用atom和f#编译问题

时间:2016-02-03 21:59:58

标签: compilation compiler-errors f# f#-interactive f#-3.0

嘿伙计们我正在尝试编译这个名为2v2的函数,它乘以任意数字的次数2.我正在使用Atom和ionide这样做但是当我使用f#interactive运行它时,它给了我这个错误,说它没有看不到功能的其余部分。有什么建议吗?

let times 2v2 n =
 let p = 2 in
 n*2;;
times 2v2 10;;



let times 2v2 n =;;
let times 2v2 n =;;
----------^^^
/stdin(4,11): error FS1156: This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I.

1 个答案:

答案 0 :(得分:1)

如果我正确理解你的问题,你想要一个名为times 2v2的函数将其参数乘以2.由于函数的名称包含一个空格,你必须用双反引号将其括起来。例如:

let ``times 2v2`` n = 2 * n

在调用函数时也使用它们:

``times 2v2`` 10

如果没有双重反引号,标识符不能以数字开头或包含空格。否则,编译器将很难确定它是否处理一个或多个标识符。

使问题代码有效的简约方法是删除times2v2之间的空格。变量p虽然没有任何意义。