Цикл по строкам текстового файла в SML/NJ

У меня есть этот код SML/NJ, который читает одну строку из текстового файла, а затем возвращает мне список, но у меня возникают проблемы с тем, чтобы он делал то же самое с каждой отдельной строкой и останавливался, когда строк больше нет. Может ли кто-нибудь помочь мне, дав мне образец зацикливания здесь?

fun readlist(infile : string) =
let val ins = TextIO.openIn infile

    val list = []
     fun listing() = [TextIO.inputLine ins]::list;

in listing()
end

1 ответ

Как насчет чего-то вроде этого:

fun readlist (infile : string) = let
  val ins = TextIO.openIn infile
  fun loop ins =
   case TextIO.inputLine ins of
      SOME line => line :: loop ins
    | NONE      => []
in
  loop ins before TextIO.closeIn ins
end
Другие вопросы по тегам