7

我是 SML 的新手,正在使用 SMLNJ 方言。

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

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

4

2 回答 2

14

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

有关更多信息,您可以在此处查看顶级环境中可用的函数列表,并在此处查看Basis库的概述。

于 2012-01-24T01:38:49.870 回答
7

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

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

通常,当您需要在类型之间进行转换时,您只需在库中挖掘合适的函数即可。在这种情况下,只需在顶级环境real -> int中搜索“real -> int”就会出现,和.roundtruncfloorceil

于 2012-01-24T13:49:43.220 回答