2017-04-21 98 views
0

我正在處理一個學校項目,該項目由處理OCaml中的聯繫人列表組成。事情是我們必須製作模塊,但我不確定是否理解這是如何工作的。我有一個agenda.ml,agenda.mli,contact.ml和contact.mli,但是當我想使用agenda.ml時,它說,當我調用Contact.function時,即使我已經做了#use「contact」,Contact也是一個未綁定的值.ml」。OCaml中的個人模塊

有人可以解釋我整個模塊的東西嗎?

+0

請提供一個儘可能小與您的2個模塊的例子 - 並提供您正在使用的編譯命令(希望,使用ocamlbuild)...這樣做會幫助您深入研究模塊 - 並將幫助社區幫助你:) - 請注意,網上有很多好的文檔(比如INRIA,Real World Ocaml和:http://www.dicosmo.org/CourseNotes/pfav/1314/cours1.handout.pdf) –

回答

1

如果您使用的是頂層,你需要使用#mod_use <filename>而非#use <filename>#use <filename>只是讀取電流範圍內的文件名的內容,而#mod_use <filename>使用該文件在當前範圍內定義一個新的模塊<Filename>

但是,#mod_use#use都是簡單的文本指令,無法與一對mlmli文件一起使用。您需要在某些時候閱讀OCaml構建系統。對於簡單的學校項目,ocamlbuild可能是一個好主意:編譯整個項目可能就像ocamlbuild <main>.native一樣簡單。

+0

謝謝,它正在工作,現在已經足夠用於我們的測試了,但我肯定會看看那個ocamlbuild! –