【发布时间】:2015-04-10 17:55:35
【问题描述】:
我正在处理 OCaml 中的递归模块,但在访问类型字段时遇到了一些问题。
如果我尝试这样做:
module A = struct type t = { name : string; } end
module A2 =
struct
include A
let getName (x:t) = x.name
end;;
一切都好。但是,我需要一个更复杂的类型,这迫使我在递归模块中定义我的类型。
module rec B:Set.OrderedType =
struct
type t = {name: string; set : S.t}
let compare _ _ = 0
end
and S:Set.S = Set.Make (B);;
一切仍然完美。但是,以下模块不正确:
module B2 =
struct
include B
let get_name (x:t) = x.name
end;;
返回的错误是“未绑定记录字段名称”。有什么问题?
【问题讨论】:
标签: recursion types module field ocaml