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 都是简单的文本指令,不能用于 mlmli 文件对。您有时需要阅读 OCaml 构建系统。对于简单的学校项目,ocamlbuild 可能是个好主意:编译整个项目可能就像 ocamlbuild <main>.native.

一样简单