嗨,我不会做一个标准ML中的函数,作为输入整数由多行中的空格分隔,并返回一个一个列表。 例如,输入文件读取一个整数文件到一个整数列表在sml
3 4 5 6 7 8 4
4 5 6 2 3
6 4 3 2
2 3 5 6 7
返回一个列表[3,4,5,6,7,8,4,4,5,6,2,3,6,4,3,2,2,3,5,6,7]
。
我试图弄清楚自己,但我不能,因为我不知道ML的IO功能。 我将不胜感激您的帮助。 谢谢
嗨,我不会做一个标准ML中的函数,作为输入整数由多行中的空格分隔,并返回一个一个列表。 例如,输入文件读取一个整数文件到一个整数列表在sml
3 4 5 6 7 8 4
4 5 6 2 3
6 4 3 2
2 3 5 6 7
返回一个列表[3,4,5,6,7,8,4,4,5,6,2,3,6,4,3,2,2,3,5,6,7]
。
我试图弄清楚自己,但我不能,因为我不知道ML的IO功能。 我将不胜感激您的帮助。 谢谢
我同意塞巴斯蒂安。 这里是一个整数示例
fun int_from_stream stream =
Option.valOf (TextIO.scanStream (Int.scan StringCvt.DEC) stream)
val fstream = TextIO.openIn file
val N = int_from_stream fstream
您可以使用TextIO.scanStream
和Int.scan
的组合。这将产生一个int option
,其中包含文件中的下一个整数(如果有)。
然后,您可以通过重复调用该函数直到获得NONE
,表示不存在更多整数,从而简单地构建文件中所有整数的列表。