使用state实例化模块

时间:2014-05-06 08:48:07

标签: ocaml

Real World OCaml, Chapter 9 Functors中,它说

  

使用状态

实例化模块      

模块可以包含可变状态,   这意味着你偶尔想拥有多个   特定模块的实例化,每个模块都有自己独立的模块   独立的可变状态。 Functors让您自动化构造   这些模块。

本书对这个子主题的内容不多。所以我在这里问。

任何人都可以给我一个实例化状态的模块来演示

的例子
  1. 怎么做?

  2. 何时这样做?

1 个答案:

答案 0 :(得分:1)

  1. 一个例子: module Make (Arg : S) = struct (** ...Use Arg at will... *) let id = ref 0 let id () = incr id; !id end 每个实例化结果Make(Arg)都有自己的id生成器。
  2. 如果您觉得不需要,请不要这样做。一般而言,状态使得对代码的推理更加困难。