Error: Type constraint mismatch when applying the default type 'int * int' for a type inference variable
Error: Type constraint mismatch when applying the default type 'int * int' for a type inference variable
我有一个将 2 个数相加的简单公式:
let add a b = a + b
let p = add(5,6)
这会导致以下编译器错误消息:
错误:为类型推断变量应用默认类型 'int * int' 时类型约束不匹配。类型“(int * int)”不支持任何名为“+”的运算符考虑添加更多类型约束
以下内容在交互式 window 中运行良好,但我也需要它在我的编译器中运行:
let add ax bx = ax + bx;;
我看了一个类似的问题(最终答案得分-1):
F# and type inference: "int list" does not support "+"
答案真的只是在末尾添加一个“+ 0”吗?
let add a b = a + b + 0
这听起来像是一种带有不必要的处理开销的 hack。
您正在将元组传递给该行中的 add
函数:
let p = add(5,6)
这就是它无法工作的原因。在 F# 中,元组由 ,
(逗号)分隔。尝试像这样重写它以传递单个值而不是元组(由 whitepsace 分隔)
let p = add 5 6
我有一个将 2 个数相加的简单公式:
let add a b = a + b
let p = add(5,6)
这会导致以下编译器错误消息:
错误:为类型推断变量应用默认类型 'int * int' 时类型约束不匹配。类型“(int * int)”不支持任何名为“+”的运算符考虑添加更多类型约束
以下内容在交互式 window 中运行良好,但我也需要它在我的编译器中运行:
let add ax bx = ax + bx;;
我看了一个类似的问题(最终答案得分-1):
F# and type inference: "int list" does not support "+"
答案真的只是在末尾添加一个“+ 0”吗?
let add a b = a + b + 0
这听起来像是一种带有不必要的处理开销的 hack。
您正在将元组传递给该行中的 add
函数:
let p = add(5,6)
这就是它无法工作的原因。在 F# 中,元组由 ,
(逗号)分隔。尝试像这样重写它以传递单个值而不是元组(由 whitepsace 分隔)
let p = add 5 6