【问题标题】:OCaml serialization with types带有类型的 OCaml 序列化
【发布时间】:2014-11-25 02:54:13
【问题描述】:

是否有任何 OCaml 库可以将我的数据与类型信息一起序列化?例如:serialize [1;2;3] 可以给我<int list: (1,2,3)> 或类似的?

我想将类型信息与数据一起存储。是否可以? 我尝试查看 Sexplib,但我不知道他们是否支持这一点。

谢谢!

【问题讨论】:

    标签: ocaml


    【解决方案1】:

    如果您只需要存储类型名,那么您可以使用typerep 库来检索它们,然后调整sexp 转换器来处理这些信息。

    另一种选择是将数据实际存储为有效的 OCaml 字符串,并使用编译器库加载它,即实际解析和评估。在这种情况下,您可以存储类型或任何您想要的。您可能会发现 odn 库对于将数据转储为 OCaml 很有用。

    【讨论】:

    • 谢谢! :) ODN 非常有用!
    【解决方案2】:

    我认为 sexplib 或 bin_prot 是当前最好的选择。 Sexplib 不会将类型名称附加到数据中,我猜 bin_prot 也不会,但在阅读器方面保证了类型安全。

    如果您真的想要将“类型信息”附加到序列化数据,您可以使用 ppx_deriving 编写自己的序列化程序。它比编写基于 CamlP4 的序列化程序(如 sexplib、bin_prot 和 meta_conv)要容易得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 2012-06-04
      相关资源
      最近更新 更多