我有一个包含少量文字的input.txt文件。我试图将这些行存储在列表中。我认为我做的正确,但列表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外,我没有收到任何错误。
答案 0 :(得分:2)
let l = []
OCaml中的变量是不可变的,因此无论您在此行之后编写什么代码,l
将始终等于[]
。
答案 1 :(得分:0)
看起来你遇到了命令式编程 - 从OCaml开始就是一件好事!
典型的函数式和递归式编程将读取如下文件:
读一行,然后追加"读一行"它。在End_of_File,您使用[]完成列表。