Итак, я прорабатываю пример кода F # и наткнулся на следующий фрагмент:
let divRem a b =
let x = a / b
let y = a % b
(x,y)
Когда я пытаюсь его скомпилировать, я получаю следующую ошибку:
HelloWorld \ Program.fs (15,14): ошибка FS0071: Несоответствие ограничения типа при применении типа по умолчанию int * int для переменной вывода типа.Тип '(int * int)' не поддерживает никакие операторы с именем '/' Рассмотрите возможность добавления дополнительных ограничений типа
Однако, делая что-то вроде
let print n = System.Console.WriteLine(n.ToString())
print (4/2)
Результат в
2
Почему целочисленное деление невозможно использовать из определения функции?
РЕДАКТИРОВАТЬ: Вот полный пример кода, который не удается скомпилировать.
let divRem a b =
let x = a / b
let y = a % b
(x,y)
let print n = System.Console.WriteLine(n.ToString())
print (divRem (5,3))