逐行读取文件并存储在列表中
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 你用 [].
完成列表
我有一个包含几行文本的 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 你用 [].
完成列表