使用sexplib语法扩展名可以自动为类型生成序列化代码,如在线上许多简单示例所示:

open Sexplib
type t = { foo : int; bar : string; } with sexp
let v = { foo = 3; bar = "baz"; } in
sexp_of_t v

无法使用Error: Unbound value int_of_sexp进行编译。

最佳答案

在最新版本的sexplib中,您需要首先open Sexplib.Std,它在生成的代码的命名空间中包括标准类型的序列化例程。

所以:

open Sexplib
open Sexplib.Std (* newly essential import *)
type t = { foo : int; bar : string; } with sexp
let v = { foo = 3; bar = "baz"; } in
sexp_of_t v

作品。

关于ocaml - 为什么用sexp注释类型会导致未绑定(bind)值int_of_sexp?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11143415/

10-09 06:46