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

我的意思是:

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

===============>>#1 票数:1 已采纳

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

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

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 *)

通过比较将pair 5pairInt 5 pair "foo"以及将pair "foo"pairInt "foo" pair 5得到的结果,可以看到pairpairInt之间的区别。


如果您有一个int option ,例如尝试使用Int.fromStringstring转换为int Int.fromString ,则可以通过多种方式提取int 有关如何执行此操作,请参考“ 在smlnj中如何将“字符串选项”转换为“字符串”? ”的问题。

  ask by 700resu translate from so

未解决问题?本站智能推荐:

1回复

是否可以读入SML中的数字列表?

我正在尝试使用SML编写一个程序,该程序将从用户的数字序列/列表/序列中读取,处理数字并输出结果。 我不知道用户将输入多少个数字。 该程序既可以读取所有数字并一起输出结果,也可以一次读取和输出一个。 我不在乎输入是在单独的文件中还是在控制台上手动输入。 我需要做什么才能读取输入?
2回复

SML检查2个项目是否在同一列表中

如何检查SML的同一列表中是否有2个项目? 我尝试更改成员函数,但无法使其工作。 如果要检查"Princes Street"和"Haymarket"是否都在routeList1 我是这种语言的新手,所以任何帮助都很好
1回复

SML检查字符串是否以字母开头

我是SMLNJ的新手,我想知道如何处理一些简单的事情,例如检查字符串是否以字母开头或以“开头”,然后返回true或false。 示例:如果字符串看起来像
1回复

SML:函数foldl是否采用了预定义的列表,或者列表可以在此过程中累积?

以下是与作业相关的问题。 不寻找答案,寻求澄清 我应该找到基于与我的问题不相关的递归相关性的第n个加泰罗尼亚语数字。 我的问题是: 函数foldl接受一个函数,一个累加器和一个列表 当我应用foldl时,它将看起来像那个foldl function_name initi
1回复

将整数写入sml中的文件

textIO签名中是否存在将整数写入文件的输出? 输出仅写入向量,输出字符串写入子字符串,输出1仅写入字符。 我不使用向量的问题是我必须将每个整数写入输出文件中的一行。 我在SML方面遇到了困难。 谢谢。
3回复

SML中的Curried匿名函数

我有以下功能,它的工作原理: 但是这个不起作用: 谁能告诉我为什么? 或者给我一些暗示让它发挥作用?
1回复

SML中的双射函数

我想定义一个函数,该函数需要一个整数n并返回一个整数n *,使得n和n *在从1到n的同一整数集中,并且该函数必须是双射的。 我尝试了以下 但不幸的是,它对我所有的n值都返回1。 我真的被困在这里。 谁能给我一些实施方法的想法? bij的行为必须类似于
2回复

SML / NJ中的高阶函数

我正在寻找问题的帮助。 我正在尝试编写一个传递ML中的列表和函数的函数。 基本上,程序应该做的是列出并运行该函数中的每个元素。 如果函数返回true,则将元素添加到列表中,并在函数完成执行后返回列表。 这是我的代码: 任何帮助将不胜感激。
1回复

在SML中调用Python函数

我试图从我用SML编写的python文件中调用函数。 我收到tycon不匹配错误,我不明白为什么。 这是我的SML代码 这是我收到的错误 这是我尝试调用的python中的方法:
3回复

将整数文件读取到SML中的整数列表

嗨,我不会在标准ML中创建一个函数,该函数将输入整数用多行空格分隔,并一一返回它们的列表。 例如,对于输入文件 返回列表[3,4,5,6,7,8,4,4,5,6,2,3,6,4,3,2,2,3,5,6,7] 。 我试图自己弄清楚它,但是我做不到,因为我对ML的IO功能不了解。