2015-02-23 72 views
0

我有一個程序需要命令行參數。源文件的相同是encode.ml。我想在頂層加載這個文件。如何在頂層處理命令行參數?

有沒有辦法將源文件加載到頂層,我們可以將它傳遞給命令行參數?

謝謝。

回答

3

是的,用ocaml encode.ml arg1 arg2 etc調用你的頂層。下面的程序演示它:

$ 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 
+0

以這種方式調用頂層,立即退出。我想要的是停留在頂層,以便我可以看到輸入的參數。我的程序有20多個參數,我想檢查這些值並修改它,看看哪一個會導致意外的行爲。我想知道是否有辦法告訴頂層的#use指示來採取論據。 – UnSat 2015-02-24 15:24:15

+0

對不起,但沒有。但是你可以嘲笑它,首先用20個虛擬參數調用它,然後用'Sys.argv。(n)< - 「-x」'直接編輯它們。但有了這個,你不能改變參數的數量。 – ivg 2015-02-24 16:38:25

+0

當我調用頂層爲「$ ledit -l 100 ocaml -I _build/encode.ml arg1 arg2 arg3 ...」時,發生了什麼事情,我回到shell提示'$'而不是提示'#'。所以我沒有機會按照你的建議修改輸入參數。 – UnSat 2015-02-24 22:19:42