【发布时间】:2016-08-30 09:24:08
【问题描述】:
输入:仅包含 1 行的文本文件,其中包含一个整数
输出:带数字位数的 int 列表
这是我的代码:
fun parse file =
let
val input = TextIO.openIn file
fun read_digits (NONE,acc) = rev acc
| read_digits (SOME e,acc) =
let
val c = Option.valOf (e)
val str = Char.toString c
val digit = Option.valOf (Int.fromString str)
in
read_digits (TextIO.input1 input,digit::acc)
end
in
read_digits (TextIO.input1 input,nil: int list)
end
这是我收到的错误消息:
test.sml:14.11-14.55 Error: operator and operand don't agree [tycon mismatch]
operator domain: char option option * int list
operand: TextIO.elem option * int list
in expression:
read_digits (TextIO.input1 input,digit :: acc)
test.sml:17.5-17.52 Error: operator and operand don't agree [tycon mismatch]
operator domain: char option option * int list
operand: TextIO.elem option * int list
in expression:
read_digits (TextIO.input1 input,nil: int list)
uncaught exception Error
raised at: ../compiler/TopLevel/interact/evalloop.sml:66.19-66.27
../compiler/TopLevel/interact/evalloop.sml:44.55
../compiler/TopLevel/interact/evalloop.sml:292.17-292.20
关于如何处理这个问题有什么建议吗?
否则,有没有人有更好的办法将文本文件中的数字提取到 int 列表中?
【问题讨论】:
标签: file parsing char integer ml