gpt4 book ai didi

module - 扩展 OCaml 模块

转载 作者:行者123 更新时间:2023-12-01 10:19:11 25 4
gpt4 key购买 nike

有什么方法可以向 OCaml 中的现有模块添加函数吗?

具体来说,我有一些模块 Loc 可以跟踪源文件中的位置。我还有一个名为 Ast 的模块,它表示一些代码的抽象语法树。我想在 ast.ml 中定义方法 Loc.of_ast,从而扩展 Loc。有什么办法吗?

注意:这可能是一个 XY 问题。我之所以倾向于相信这样的模块扩展是可能的,是因为在 Batteries 中,有 String.of_intInt.of_string 等方法,这意味着这些模块是相互递归的。当然,它们并非都完全定义在同一个文件中......

最佳答案

您可以做的是创建一个像现有模块一样调用的新模块,并将现有模块的所有功能包含到您的新模块中。新模块覆盖了现有模块,您可以使用所有新定义的函数。

这是 how Batteries does it , 顺便说一下。

module List = struct
include List

let empty = []
end;;

List.empty;;
(* - : 'a list = [] *)

关于module - 扩展 OCaml 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56828640/

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