我有一个简单的公式来添加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
这听起来像是一个带有不必要的处理开销的黑客。
答案 0 :(得分:1)
您正在将一个元组传递给该行中的add
函数:
let p = add(5,6)
这就是它无法运作的原因。在F#中,元组由,
(逗号)符号分隔。尝试重写它,以传递单个值而不是元组(由whitepsace分隔)
let p = add 5 6