是否有内置函数检查SML中的数字是否为整数

是否有内置函数检查SML中的数字是否为整数,sml,smlnj,Sml,Smlnj,sml中是否有内置的Is整数函数 我的意思是: 我必须从文件中读取一个数字,如果它是整数,则将其显示为输出,如果该数字不是整数,则引发异常。例如,我必须检查(Int.fromString())的输出是否为整数,如果是,则显示它…(重复上述步骤)类型系统将确保给定函数的值类型与函数的类型签名匹配 也就是说,如果您有一个以整数作为输入的函数,例如 fun double n = 2 * n (* this function has type: int -> int *) 然后n将始终是一个整数

sml中是否有内置的Is整数函数

我的意思是:


我必须从文件中读取一个数字,如果它是整数,则将其显示为输出,如果该数字不是整数,则引发异常。例如,我必须检查(Int.fromString())的输出是否为整数,如果是,则显示它…(重复上述步骤)

类型系统将确保给定函数的值类型与函数的类型签名匹配

也就是说,如果您有一个以整数作为输入的函数,例如

fun double n = 2 * n
(* this function has type: int -> int *)
然后
n
将始终是一个整数。除了整数外,不可能调用任何函数;它将给出一个类型错误

如果您有一个多态函数,例如

fun pair n = (n, n)
(* this function has type: 'a -> 'a * 'a *)
然后,您无法知道运行时输入的类型。所有类型的输入都将被同等对待

但是,通过在定义函数时使类型显式,您可以始终将多态函数限制为仅在给定类型上工作:

fun pairInt (n : int) = (n, n)
(* this function has type: int -> int * int *)
通过比较调用
pairInt 5
pairInt 5
以及
pairInt“foo”
pairInt“foo”得到的结果,可以看出
pairInt
pairInt“foo”之间的区别



如果您有一个
int选项
,就像您尝试使用
int.fromString
字符串
转换为
int
一样,您可以通过多种方式提取
int
。要了解如何做到这一点,请参考问题“。

您到底想要什么?一个函数,它接受一个double,如果该double没有小数部分,则返回true?请注意,这对于大型双人赛来说并不十分准确。还是一个接受int并始终返回true的函数?这没有多大意义。我必须从文件中读取一个数字,如果它是整数,则将其显示为输出,如果该数字不是整数,则引发异常。例如,我必须检查(Int.fromString())的输出是否为整数,如果是,则显示它…(重复上述步骤)。@user1710036:我建议您更新您的问题以反映这一点。我已经更新了我的答案。