2012-01-24 2 views
6

Я новичок в SML, и я использую диалект SMLNJ.Typecasting in SML

С какой-то целью я пытаюсь ввести тип от 3 до 3,0 (int to real).

Не удалось найти выход. Как я могу это сделать? Как я могу конвертировать между типами?

+0

Ничего, я нашел ответ. Вы просто наберете 'real (2)' например, чтобы преобразовать 2 (int) в 2.0 (real). – Dave

ответ

12

Вы можете использовать функцию real (или Real.fromInt) для преобразования int в real.

Для получения дополнительной информации вы можете увидеть список функций, доступных в среде верхнего уровня here, а также обзор базовой библиотеки here.

+0

Отлично, я думаю, это глубокое;). int и real - 2 разных типа, а SML не конвертируется из типа 'int' в 'real'. – suhao399

5

У SML нет меток. Любое отображение между типами должно выполняться через функции.

real(3) выглядит и выглядит так же, как тип типа C, но real: int -> real - это еще одна функция в стандартном базисе. int(3.0), с другой стороны, не работает, потому что функция int не существует.

В общем, когда вам нужно конвертировать между типами, вы просто просматриваете библиотеку для соответствующей функции. В случае real -> int, только поиск «real -> int» в top level environment завершается round, trunc, floor и ceil.

 Смежные вопросы

  • Нет связанных вопросов^_^