Ocaml 如何在顶级中处理命令行参数?

Ocaml 如何在顶级中处理命令行参数?,ocaml,ocaml-toplevel,Ocaml,Ocaml Toplevel,我有一个接受命令行参数的程序。源文件的相同名称为encode.ml。我想在顶层加载此文件 有没有办法在顶层加载源文件,在那里我们可以传递一个命令行参数 谢谢。是的,使用ocaml encode.ml arg1 arg2等调用顶级。下面的程序演示了这一点: $ cat args.ml let () = Array.iteri (Printf.printf "%d -> %s\n") Sys.argv $ ocaml args.ml -h --help -help 0 -> arg

我有一个接受命令行参数的程序。源文件的相同名称为encode.ml。我想在顶层加载此文件

有没有办法在顶层加载源文件,在那里我们可以传递一个命令行参数


谢谢。

是的,使用
ocaml encode.ml arg1 arg2等调用顶级。下面的程序演示了这一点:

$ cat args.ml
let () =
  Array.iteri (Printf.printf "%d -> %s\n") Sys.argv

$ ocaml args.ml -h --help -help
0 -> args.ml
1 -> -h
2 -> --help
3 -> -help

是的,使用
ocaml encode.ml arg1 arg2等调用顶级。下面的程序演示了这一点:

$ cat args.ml
let () =
  Array.iteri (Printf.printf "%d -> %s\n") Sys.argv

$ ocaml args.ml -h --help -help
0 -> args.ml
1 -> -h
2 -> --help
3 -> -help

是的,使用
ocaml encode.ml arg1 arg2等调用顶级。下面的程序演示了这一点:

$ cat args.ml
let () =
  Array.iteri (Printf.printf "%d -> %s\n") Sys.argv

$ ocaml args.ml -h --help -help
0 -> args.ml
1 -> -h
2 -> --help
3 -> -help

是的,使用
ocaml encode.ml arg1 arg2等调用顶级。下面的程序演示了这一点:

$ cat args.ml
let () =
  Array.iteri (Printf.printf "%d -> %s\n") Sys.argv

$ ocaml args.ml -h --help -help
0 -> args.ml
1 -> -h
2 -> --help
3 -> -help

以这种方式调用toplevel,会立即退出它。我想要的是停留在顶层,这样我就可以看到输入参数。我的程序有20多个参数,我想检查这些值并修改它,看看哪一个会导致意外行为。我想知道是否有办法告诉“使用toplevel的指令获取参数。抱歉,但是没有。但是你可以模拟它,首先用20个伪参数调用它,然后直接用
Sys.argv编辑它们。(n)当我调用toplevel时,会发生什么事,比如“$ledit-l 100 ocaml-I(u build/encode.ml arg1 arg2 arg3…”,我回到shell提示符“$”而不是顶级提示符“#”。因此,我没有机会按照您的建议修改输入参数。通过这种方式调用toplevel,会立即退出它。我想要的是停留在顶层,这样我就可以看到输入参数。我的程序有20多个参数,我想检查这些值并修改它,看看哪一个会导致意外行为。我想知道是否有办法告诉“使用toplevel的指令获取参数。抱歉,但是没有。但是你可以模拟它,首先用20个伪参数调用它,然后直接用
Sys.argv编辑它们。(n)当我调用toplevel时,会发生什么事,比如“$ledit-l 100 ocaml-I(u build/encode.ml arg1 arg2 arg3…”,我回到shell提示符“$”而不是顶级提示符“#”。因此,我没有机会按照您的建议修改输入参数。通过这种方式调用toplevel,会立即退出它。我想要的是停留在顶层,这样我就可以看到输入参数。我的程序有20多个参数,我想检查这些值并修改它,看看哪一个会导致意外行为。我想知道是否有办法告诉“使用toplevel的指令获取参数。抱歉,但是没有。但是你可以模拟它,首先用20个伪参数调用它,然后直接用
Sys.argv编辑它们。(n)当我调用toplevel时,会发生什么事,比如“$ledit-l 100 ocaml-I(u build/encode.ml arg1 arg2 arg3…”,我回到shell提示符“$”而不是顶级提示符“#”。因此,我没有机会按照您的建议修改输入参数。通过这种方式调用toplevel,会立即退出它。我想要的是停留在顶层,这样我就可以看到输入参数。我的程序有20多个参数,我想检查这些值并修改它,看看哪一个会导致意外行为。我想知道是否有办法告诉“使用toplevel的指令获取参数。抱歉,但是没有。但是你可以模拟它,首先用20个伪参数调用它,然后直接用
Sys.argv编辑它们。(n)当我调用toplevel时,会发生什么事,比如“$ledit-l 100 ocaml-I(u build/encode.ml arg1 arg2 arg3…”,我回到shell提示符“$”而不是顶级提示符“#”。因此,我没有机会按照您的建议修改输入参数。