逐行读取Ocaml

逐行读取Ocaml,ocaml,Ocaml,我有一个ocaml代码: 让我们在中读取文件名=“/home/test.txt” let in\u channel=打开文件中的\u\u name in 尝试 尽管如此 let line=输入信道中的线路 打印尾行 完成 带有\u文件的结尾\u-> 在频道中关闭 让我的快乐= 让f=“test1.ml”进入 读取文件f ;; 我的乐趣() 但它只打印文件的第1行 你能帮我一下吗?你的代码在第2行的“未绑定值文件名”中显示了一个错误。我刚刚将read_file转换为一个函数,并使用文件路径调用它

我有一个ocaml代码:

让我们在中读取文件名=“/home/test.txt”
let in\u channel=打开文件中的\u\u name in
尝试
尽管如此
let line=输入信道中的线路
打印尾行
完成
带有\u文件的结尾\u->
在频道中关闭
让我的快乐=
让f=“test1.ml”进入
读取文件f
;;
我的乐趣()
但它只打印文件的第1行


你能帮我一下吗?

你的代码在第2行的“未绑定值文件名”中显示了一个错误。我刚刚将
read_file
转换为一个函数,并使用文件路径调用它:

let read_file file_name =
  let in_channel = open_in file_name in 
  try 
    while true do
      let line = input_line in_channel in 
    print_endline line
    done
  with End_of_file ->
     close_in in_channel

let my_fun() =
  let f = "home/test.txt" in
    read_file f;;

my_fun()
使用此代码对文件调用
$ocaml
,将文件中的每一行打印到指定的stdout路径


编辑:添加有关文件结构和如何执行的更多详细信息:

我有一个名为
sample dir
的目录,其中包含以下内容:

sample-dir
   ├── home
   │   └── test.txt
   └── sample.ml
代码位于
sample.ml
中,
test.txt
位于名为
home
的子目录中。
test.txt
的内容如下:

one
two
three
I
cd
进入
sample dir
并执行以下命令:

$ ocaml sample.ml
我得到以下输出:

one
two
three

出现此错误:$ocamlbash:syntax error靠近意外标记'newline',尖括号不在命令中。尝试
ocaml efa.ml