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