我是 SML 的新手,正在使用 SMLNJ 方言。
出于某种目的,我一直在尝试将 3 类型转换为 3.0(int 到 real)。
找不到出路。我怎样才能做到这一点?如何在类型之间进行转换?
SML 没有类型转换。类型之间的任何映射都需要通过函数来完成。
real(3)
看起来和行为很像 C 风格的类型转换,但real: int -> real
只是标准基础中的另一个函数。int(3.0)
,另一方面,不起作用,因为该int
功能不存在。
通常,当您需要在类型之间进行转换时,您只需在库中挖掘合适的函数即可。在这种情况下,只需在顶级环境real -> int
中搜索“real -> int”就会出现,和.round
trunc
floor
ceil