在SML中进行类型转换

Dav*_*ave 7 sml smlnj

我是SML的新手,我使用的是SMLNJ方言.

出于某种目的,我一直试图将类型转换为3到3.0(int到real).

无法找到出路.我怎样才能做到这一点?如何在类型之间进行转换?

sep*_*p2k 12

您可以使用函数real(或Real.fromInt)将inta 转换为a real.

欲了解更多信息,您可以看到在顶层环境中可用的功能列表在这里和基础库的概述这里.


Nic*_*nes 5

SML没有类型转换.类型之间的任何映射都需要通过函数来​​完成.

real(3)外观和行为很像C风格的类型转换,但real: int -> real只是标准基础中的另一个功能.int(3.0)另一方面,不起作用,因为该int功能不存在.

通常,当您需要在类型之间进行转换时,您只需挖掘库以获得适当的功能.在real -> int情况下,只是在寻找-在"真实>诠释" 顶级的环境变成了round,trunc,floorceil.