gpt4 book ai didi

module - Ocaml 未绑定(bind)模块

转载 作者:行者123 更新时间:2023-12-02 10:44:41 25 4
gpt4 key购买 nike

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

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

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

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

你有想法吗?

谢谢

最佳答案

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

但是,您也有一个问题,即您的类型是循环的。定义:

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

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

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

关于module - Ocaml 未绑定(bind)模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16310469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com