【发布时间】:2018-12-18 17:11:06
【问题描述】:
我在 utop 中运行这段代码:
# type u = { a: int; b: float } [@@deriving sexp];;
但是没有生成 s-expression 转换器的预期声明。
我安装了 Core 0.11.0 和 utop 版本 2.1.0。
Ocaml 的版本是 4.06.1。
谢谢。
【问题讨论】:
我在 utop 中运行这段代码:
# type u = { a: int; b: float } [@@deriving sexp];;
但是没有生成 s-expression 转换器的预期声明。
我安装了 Core 0.11.0 和 utop 版本 2.1.0。
Ocaml 的版本是 4.06.1。
谢谢。
【问题讨论】:
您需要传递-require 以便加载ppx。此外(特定于此驱动程序),您需要使用-require sexplib 和手册open Sexplib.Std 在范围内传递其运行时:
% utop -require ppx_sexp_conv -require sexplib
utop # open Sexplib.Std;;
utop # type u = { a: int; b: float } [@@deriving sexp];;
type u = { a : int; b : float; }
val u_of_sexp : Sexplib0.Sexp.t -> u = <fun>
val sexp_of_u : u -> Sexplib0.Sexp.t = <fun>
【讨论】:
utop -require ppx_sexp_conv,而不是open Sexplib.Std,我可以open Core 或open Base。