3
在OCaml中,如果您的項目有一個名爲code.ml的文件,您可以使用模塊名稱代碼在其他文件中引用它。我想知道如果你能夠以類似的方式引用它定義的簽名,你是否定義了一個.mli文件。例如,如果你有一個名爲wow.mli,你可以有申報參考在頂層文件中定義的模塊類型
module Func(St : Wow) = struct ... end
有沒有辦法做類似的規定另一個文件?
在OCaml中,如果您的項目有一個名爲code.ml的文件,您可以使用模塊名稱代碼在其他文件中引用它。我想知道如果你能夠以類似的方式引用它定義的簽名,你是否定義了一個.mli文件。例如,如果你有一個名爲wow.mli,你可以有申報參考在頂層文件中定義的模塊類型
module Func(St : Wow) = struct ... end
有沒有辦法做類似的規定另一個文件?
這個工作對我來說:
module Func(St: module type of Wow) = struct ... end
詳細這裏就是我所做的:
$ cat wow.mli
val f : int -> int
$ cat m.ml
module Func (St: module type of Wow) = struct let f x = St.f x end
$ ocamlopt -c wow.mli
$ ocamlopt -c m.ml
如果我在另一個文件中做「模塊類型本功能=模塊類型Func鍵的」它聲稱自己是簽名不匹配。 – dalastboss
(如果你需要幫助,你必須展示你的代碼,我想。) –