如何逐行读取SML文件

How to read a file in SML line by line

我想编写一个逐行读取文本文件的函数。即,读取第一行直到 EOL,然后将其视为字符串,并重复此操作直到文本结束。 到目前为止,我只做到了这么多:

fun read file = 
let val is = TextIO.openIn file
in
end

您可以为此使用 TextIO.inputLine : instream -> string option。使用 refs 你可以做类似

let
  val is = TextIO.openIn file
  val done = ref false
in
  while not (!done) do
    case TextIO.inputLine of
      SOME s => print s
    | NONE => done := true
end

您还可以使用TextIO.StreamIO中的功能。