大家好,我正在尝试编译一个称为2v2的函数,该函数可以乘以任意倍数2。我正在将Atom与ionide一起使用,但是当我使用f#交互式程序运行它时,它给了我这个错误,表明它看不到其余功能。有什么建议?
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.
最佳答案
如果我正确理解了您的问题,则需要一个名为times 2v2
的函数,该函数将其参数乘以2。由于函数的名称包含空格,因此必须用双引号将其引起来。例如:
let ``times 2v2`` n = 2 * n
并在调用函数时使用以下命令:
``times 2v2`` 10
没有双反引号,标识符不能以数字开头或包含空格。否则,编译器将很难确定是要处理一个还是多个标识符。
使问题代码有效的一种极简方法是删除
times
和2v2
之间的空格。变量p
毫无用处。关于compilation - 原子和f#的编译问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35188597/