OCaml 中的个人模块
Personal modules in OCaml
我正在做一个学校项目,该项目包括在 OCaml 中处理联系人列表。问题是我们必须制作模块,但我不确定是否了解它是如何工作的。我有一个 agenda.ml、agenda.mli、contact.ml 和 contact.mli,但是当我想使用 agenda.ml 时,它说当我调用Contact.function 即使我已经做了 #use "contact.ml".
有人能给我解释一下模块的全部内容吗?
如果您使用的是顶层,则需要使用 #mod_use <filename>
而不是 #use <filename>
:#use <filename>
只是读取当前范围内文件名的内容,而 #mod_use <filename>
使用该文件在当前范围内定义一个新模块 <Filename>
。
但是,#mod_use
和 #use
都是简单的文本指令,不能用于 ml
和 mli
文件对。您有时需要阅读 OCaml 构建系统。对于简单的学校项目,ocamlbuild 可能是个好主意:编译整个项目可能就像 ocamlbuild <main>.native
.
一样简单
我正在做一个学校项目,该项目包括在 OCaml 中处理联系人列表。问题是我们必须制作模块,但我不确定是否了解它是如何工作的。我有一个 agenda.ml、agenda.mli、contact.ml 和 contact.mli,但是当我想使用 agenda.ml 时,它说当我调用Contact.function 即使我已经做了 #use "contact.ml".
有人能给我解释一下模块的全部内容吗?
如果您使用的是顶层,则需要使用 #mod_use <filename>
而不是 #use <filename>
:#use <filename>
只是读取当前范围内文件名的内容,而 #mod_use <filename>
使用该文件在当前范围内定义一个新模块 <Filename>
。
但是,#mod_use
和 #use
都是简单的文本指令,不能用于 ml
和 mli
文件对。您有时需要阅读 OCaml 构建系统。对于简单的学校项目,ocamlbuild 可能是个好主意:编译整个项目可能就像 ocamlbuild <main>.native
.