在Real World OCaml, Chapter 9 Functors中,它说
使用状态
实例化模块模块可以包含可变状态, 这意味着你偶尔想拥有多个 特定模块的实例化,每个模块都有自己独立的模块 独立的可变状态。 Functors让您自动化构造 这些模块。
本书对这个子主题的内容不多。所以我在这里问。
任何人都可以给我一个实例化状态的模块来演示
的例子怎么做?
何时这样做?
答案 0 :(得分:1)
module Make (Arg : S) = struct
(** ...Use Arg at will... *)
let id = ref 0
let id () = incr id; !id
end
每个实例化结果Make(Arg)
都有自己的id生成器。