Рассмотрим это определение:
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
правильно?
Спасибо
В SML /
— деление на реалы. Для целых чисел вам нужно использовать div
.
> fun abs x = x*x div ~x;
val abs = fn : int -> int