确保从多次调用引用得到相同结果

问题描述 投票:0回答:1

例如,我在模块中调用一个函数以生成唯一的标签。

MyMod.gensym

定义为

let gensym : string -> string =
  let c = ref 0 in
  fun s -> incr c; Printf.sprintf "!%s%d" s (!c)

但是,我希望能够在某些时候从使用该基因符号的函数中获得可再现的结果,例如

let reproducible = SomeMod.call x

可能第一次返回["!a1"; "!a2"],第二次返回["!a3"; ...]

在这种情况下,如何确保输出可重复(例如,强制ref从相同的值开始?)>]

我在模块中调用函数以生成唯一标签,例如。 MyMod.gensym定义为let gensym:string-> string = let c = ref 0 in s-> incr c; Printf.sprintf“!%s%d” s(!c)但是,...

module ocaml consistency
1个回答
0
投票

您可以添加可选参数以将其重置:

© www.soinside.com 2019 - 2024. All rights reserved.