【问题标题】:operator and operand don't agree error in this simple function运算符和操作数不同意这个简单函数中的错误
【发布时间】:2019-09-11 12:59:55
【问题描述】:

考虑这个定义:

fun abs(x:int):int = (x*x)/(~x);

应该返回输入的绝对值。但是当函数被调用时,我得到了这个错误:

Error: operator and operand don't agree [tycon mismatch]
  operator domain: real * real
  operand:         int * int
  in expression:
    x * x / ~ x

我做错了什么?我没有正确使用:int吗?

谢谢

【问题讨论】:

    标签: ml


    【解决方案1】:

    在 SML 中,/ 是实数除法。对于整数,您需要使用div

    > fun abs x = x*x div ~x;
    val abs = fn : int -> int
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-19
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 2018-02-11
      相关资源
      最近更新 更多