我写了一个包含Vector模块和Matrix模块的ocaml文件,我想在Matrix模块中调用Vector模块,但编译器说Vector模块是未绑定模块。我不知道为什么,这是我的代码
module Vector =
Struct
body
end
module Matrix =
Struct
body
end
它们位于相同的.ml文件中,如何在Matrix模块中编写代码来调用Vector模块(使用仿函数排除)
答案 0 :(得分:3)
您显示的代码没有任何问题,因此无法回答。这是一个很有用的例子(m.ml
):
module Vector =
struct
let f x = x + 7
end
module Matrix =
struct
let g x = 2 * Vector.f x
end
编译器没有问题:
$ ocamlc -c m.ml
$
需要注意的是,每个OCaml文件都会引入一个以该文件命名的模块。因此,上例中的模块名为M.Vector
和M.Matrix
,因为该文件名为m.ml
。
如果这没有帮助,您需要显示更多代码。理想情况下,您应该显示重现问题的最小代码量。