我写了一个包含 Vector 模块和 Matrix 模块的 ocaml 文件,我想在 Matrix 模块中调用 Vector 模块,但是编译器说 Vector 模块是未绑定的模块。我不知道为什么,这是我的代码
module Vector =
Struct
body
end
module Matrix =
Struct
body
end
它们在同一个 .ml 文件中,我如何在 Matrix 模块中编写代码来调用 Vector 模块(不使用仿函数)
我写了一个包含 Vector 模块和 Matrix 模块的 ocaml 文件,我想在 Matrix 模块中调用 Vector 模块,但是编译器说 Vector 模块是未绑定的模块。我不知道为什么,这是我的代码
module Vector =
Struct
body
end
module Matrix =
Struct
body
end
它们在同一个 .ml 文件中,我如何在 Matrix 模块中编写代码来调用 Vector 模块(不使用仿函数)
您显示的代码没有任何问题,因此实际上无法回答。这是一个有效的小例子(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
and M.Matrix
,因为文件被命名为m.ml
.
如果这没有帮助,您将需要显示更多代码。理想情况下,您应该显示重现问题的最少代码量。