OCAML的字符串设置模块的默认实现具有以下格式:
["here"; "is"; "a"; "set"]
但我希望我的设置格式为{"here", "is", "a", "set"}
。
是否有一种简单的方法可以更改模块以适应我的格式(因此[]
相当于{}
而;
相当于,
)而无需重写整个模块?如果我必须重写整个模块,那么最好的方法是什么,我可以访问默认设置模块的当前方法吗?谢谢你的时间。
答案 0 :(得分:1)
OCAML的字符串设置模块的默认实现具有以下格式。
默认实现未指定或实现任何格式。实际上,OCaml没有字符串的默认Set模块,它有一个仿函数,可以使用任何类似的类型进行参数化,以生成此类值集合的模块。
如果您正在谈论打印一套的格式,那么您可以自己实施,然后以您喜欢的方式打印。如果您希望在顶层中看到此输出,那么将打印您的集合所需的函数类型为Format.formatter -> your_set_type -> unit
,其中your_set_type
是您的集合类型的类型构造函数。您可以告诉OCaml顶级或调试器将您的打印机与install_printer
指令一起使用。
如果您正在讨论如何在OCaml程序中表示字符串列表,那么这是OCaml语言实现的强制要求。如果您不喜欢它,可以克隆OCaml实现并更改语法。或者,您可以使用camlp4或camlp5语法重写器来更改OCaml解析器的语法,而无需更改实际代码。