所以我正在处理一些示例F#代码,并遇到以下片段:
let divRem a b =
let x = a / b
let y = a % b
(x,y)
当我尝试编译它时,我收到以下错误:
HelloWorld \ Program.fs(15,14):错误FS0071:类型约束不匹配 在为类型推断应用默认类型'int * int'时 变量。类型'(int * int)'不支持任何名为的运算符 '/'考虑添加更多类型约束
但是,做一些像
这样的事情let print n = System.Console.WriteLine(n.ToString())
print (4/2)
结果
2
为什么整数除法运算在函数定义中不可用?
修改 以下是无法编译的代码的完整示例。
let divRem a b =
let x = a / b
let y = a % b
(x,y)
let print n = System.Console.WriteLine(n.ToString())
print (divRem (5,3))
答案 0 :(得分:7)
问题是你在F#中调用函数时不使用逗号,逗号用于创建元组。代码应该是:
let divRem a b =
let x = a / b
let y = a % b
(x,y)
let print n = System.Console.WriteLine(n.ToString())
print (divRem 5 3)
答案 1 :(得分:0)
let divRem (a, b) =
let x = a / b
let y = a % b
(x,y)
let print n = System.Console.WriteLine(n.ToString())
print (divRem (5,3))