嗨,我不會做一個標準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
,表示不存在更多整數,從而簡單地構建文件中所有整數的列表。