繁体   English   中英

Ocaml未绑定模块

[英]Ocaml unbound module

我正在学习Ocaml语言但是当我想编译它时我的模块有问题。 所以,我有一个名为Door的模块和另一个名为Case的模块。 在每一个中,我有一个与另一个模块的类型参数:

Door.mli
type t = bool -> Case.u -> t

Case.mli
type u = bool -> Door.t -> u

当我想编译时,我有这个错误:文件“door.mli”,第14行,字符23-29:错误:未绑定模块案例

你有个主意吗?

谢谢

你有两个相互递归的模块,这总是很棘手。 让它们工作的一种方法是使用module rec A ... and B ...在同一个文件中定义它们。

但是,您还遇到了类型是循环的问题。 定义:

type t = bool -> Case.u -> t

OCaml通常也不接受。 您可以通过在编译器或解释器命令行上指定-rectypes来接受它。

我担心你会发现这些结构难以使用。 他们难以定义的原因是他们通常不是你想要的。 如果可能的话,您可以尝试从更简单的类型开始。

我的建议:从door.mlcase.ml获取这两种类型,并使DoorCase依赖于常见的Types模块:

type door = Door of bool -> case -> door
and case = Case of bool -> door -> case

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM