如何在ocaml中调用模块

时间:2015-03-20 03:09:43

标签: ocaml ocamlbuild

我写了一个包含Vector模块和Matrix模块的ocaml文件,我想在Matrix模块中调用Vector模块,但编译器说Vector模块是未绑定模块。我不知道为什么,这是我的代码

module Vector = 
Struct
   body
end

module Matrix = 
Struct
    body
end

它们位于相同的.ml文件中,如何在Matrix模块中编写代码来调用Vector模块(使用仿函数排除)

1 个答案:

答案 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.VectorM.Matrix,因为该文件名为m.ml

如果这没有帮助,您需要显示更多代码。理想情况下,您应该显示重现问题的最小代码量。