错误:对类型推断变量应用默认类型“int * int”时,键入约束不匹配

时间:2015-03-31 10:40:16

标签: compiler-errors f#

我有一个简单的公式来添加2个数字:

let add a b = a + b
let p = add(5,6)

导致以下编译器错误消息:

错误:对类型推断变量应用默认类型“int * int”时,键入约束不匹配。类型'(int * int)'不支持任何名为'+'的运算符。考虑添加更多类型约束

以下在交互式窗口中工作正常但我需要它在我的编译器中工作:

let add ax bx = ax + bx;;

我看了一个类似的问题(最终答案得分为-1):

F# and type inference: "int list" does not support "+"

答案真的只是在结尾添加“+ 0”吗?

let add a b = a + b + 0

这听起来像是一个带有不必要的处理开销的黑客。

1 个答案:

答案 0 :(得分:1)

您正在将一个元组传递给该行中的add函数:

let p = add(5,6)

这就是它无法运作的原因。在F#中,元组由,(逗号)符号分隔。尝试重写它,以传递单个值而不是元组(由whitepsace分隔)

let p = add 5 6