运算符和操作数不同意这个简单函数中的错误
operator and operand don't agree error in this simple function
考虑这个定义:
fun abs(x:int):int = (x*x)/(~x);
应该return输入的绝对值。但是当函数被调用时,我得到这个错误:
Error: operator and operand don't agree [tycon mismatch]
operator domain: real * real
operand: int * int
in expression:
x * x / ~ x
我做错了什么?我没有正确使用 :int
吗?
谢谢
在 SML 中,/
是实数除法。对于整数,您需要使用 div
.
> fun abs x = x*x div ~x;
val abs = fn : int -> int
考虑这个定义:
fun abs(x:int):int = (x*x)/(~x);
应该return输入的绝对值。但是当函数被调用时,我得到这个错误:
Error: operator and operand don't agree [tycon mismatch]
operator domain: real * real
operand: int * int
in expression:
x * x / ~ x
我做错了什么?我没有正确使用 :int
吗?
谢谢
在 SML 中,/
是实数除法。对于整数,您需要使用 div
.
> fun abs x = x*x div ~x;
val abs = fn : int -> int