我在utop中运行以下代码:

# type u = { a: int; b: float } [@@deriving sexp];;

但是不会生成s表达式转换器的预期声明。

我安装了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>

关于ocaml - @@ deriving sexp在utop上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51272286/

10-11 04:33