11

我最近正在阅读一个 OCaml 项目,我想将源文件放在 utop 中,以便我可以做一些实验。
假设我有两个文件amodule.mlbmodule.ml
bmodule.ml将使用在amodule.ml中定义的函数,例如,bmodule使用Amodule.anyfunction()其中anyfunction()在amodule.ml中定义。
我想把它们都放在 utop 中:

#directory "/directory contain amodule.ml and bmodule.ml"
#use "amodule.ml"
#use "bmodule.ml"

这不起作用,因为Amodule是基于amodule.ml文件的模块名称,而 utop 不知道这些东西,我想。
那么如何在不改变文件内容的情况下把这些文件放到utop中呢?</p>

4

1 回答 1

14

#use a.ml执行 a.ml 中的每个语句,就像您直接在顶层键入这些语句一样。因此,您没有得到module A定义,因此您的其他文件不能包含A.foo. 如果需要module A,必须先字节编译 a.ml,然后#load a.cmo.

于 2013-12-14T18:19:56.233 回答