我正在尝试将.cmo中的模块加载到顶层,我尝试过:
$ ocaml mymodule.cmo
我得到了顶级提示,但我无法引用Mymodule
我也试过了
#load "mymodule.cmo"
它没有抱怨,但仍然无法参考Mymodule
我也试过
#use "mymodule.ml"
这似乎有效,但是它没有将代码加载到Mymodule命名空间中,这是一个问题,因为我实际上想要将一些模块加载到顶层,并且它们通过模块命名空间相互引用。 / p>
答案 0 :(得分:18)
完成后
#load "mymodule.cmo"
您可以参考您的模块,但仍需要使用模块名称:
Mymodule.x
如果您想使用简单名称(x
),还需要open
模块:
open Mymodule
这可能是您问题的根源。
这是一个会话,显示我在说什么:
$ cat mymodule.ml
let x = 14
$ ocaml312
Objective Caml version 3.12.0
# load "mymodule.cmo";;
# x;;
Characters 0-1:
x
^
Error: Unbound value x
# Mymodule.x;;
- : int = 14
# open Mymodule;;
# x;;
- : int = 14
#