6
Sexplib的语法扩展使OCaml中的任意用户定义数据结构的序列化和反序列化变得容易。它通常是将一个with sexp
注释类型定义的最后完成:sexplib如何与Map这样的函数类型一起使用?
type a = A of int | B of float with sexp
这似乎并不直接推广到基于仿函数类型,也不是明确的Sexplib标准型转换器怎么能捕捉标准仿函数。
到目前为止,我已经通过在序列化之前将特定的Map类型实例(例如int Map.Make(String).t
)扁平化为列表来解决这个问题,反之亦然,但是一般雄心勃勃的Sexplib/Jane作者并未完全忽略它街头核心。我还注意到,较旧的版本的电池混合自定义sexp序列化到他们的主要模块,如[Bat] Map,但这已被删除了一段时间。
如何在Sexplib序列化中常用的Maps或其他复杂仿函数类型?
我想你会使用一个扩展的标准库与普及sexplib转换函数。你看过Core吗?我只花了5分钟的时间,但是在这5分钟里我应用了函数Set.Make',它向我提供了参数类型上的sexplib转换函数,以便它可以为结果集类型创建sexplib转换函数。 –