Я новичок в SML, и я использую диалект SMLNJ.Typecasting in SML
С какой-то целью я пытаюсь ввести тип от 3 до 3,0 (int to real).
Не удалось найти выход. Как я могу это сделать? Как я могу конвертировать между типами?
Я новичок в SML, и я использую диалект SMLNJ.Typecasting in SML
С какой-то целью я пытаюсь ввести тип от 3 до 3,0 (int to real).
Не удалось найти выход. Как я могу это сделать? Как я могу конвертировать между типами?
Вы можете использовать функцию real
(или Real.fromInt
) для преобразования int
в real
.
Для получения дополнительной информации вы можете увидеть список функций, доступных в среде верхнего уровня here, а также обзор базовой библиотеки here.
Отлично, я думаю, это глубокое;). int и real - 2 разных типа, а SML не конвертируется из типа 'int' в 'real'. – suhao399
У SML нет меток. Любое отображение между типами должно выполняться через функции.
real(3)
выглядит и выглядит так же, как тип типа C, но real: int -> real
- это еще одна функция в стандартном базисе. int(3.0)
, с другой стороны, не работает, потому что функция int
не существует.
В общем, когда вам нужно конвертировать между типами, вы просто просматриваете библиотеку для соответствующей функции. В случае real -> int
, только поиск «real -> int» в top level environment завершается round
, trunc
, floor
и ceil
.
Ничего, я нашел ответ. Вы просто наберете 'real (2)' например, чтобы преобразовать 2 (int) в 2.0 (real). – Dave