逐行读取文件并存储在列表中

Read file line by line and store in a list

我有一个包含几行文本的 input.txt 文件。我正在尝试将这些行存储在列表 l 中。我认为我做的是正确的,但列表 l 没有得到更新。请帮忙

let l = []
let () = 
  let ic = open_in "input.txt" 
  in
  try
    while true do
      let line = input_line ic 
      in
      let rec append(a, b) = match a with
      |[] -> [b]
      |c::cs -> c::append(cs,b)
      in
      append(l, line)
      (* print_endline line *)
    done
  with End_of_file ->
close_in ic;;

除了警告 10,我没有收到任何错误。

let l = []

OCaml 中的变量是不可变的,因此无论您在此行之后编写什么代码,l 将始终等于 []

看起来你陷入了命令式编程 - 从 OCaml 开始是件好事!

典型的函数和递归编程会像这样读取文件:

读取一行,然后将 "read a line" 附加到它。在 End_of_File 你用 [].

完成列表