二叉树语法错误

Ole*_*leg 0 ocaml

我不知道我不能像这样定义bin_tree:

type 'a bin_tree = Node of { data : 'a ; left : 'a bin_tree; right : 'a bin_tree; } | Leaf
Run Code Online (Sandbox Code Playgroud)

Merlin告诉我:内部错误,期待_

Rei*_*nds 5

您正在使用内联记录,这是一种自4.03.0版以来才可用的新语言功能.

从4.03.0开始,可以执行以下操作:

type t = A of { ... } | B
Run Code Online (Sandbox Code Playgroud)

在4.03.0之前,您必须单独定义记录类型:

type t = A of r | B and r = { ... }
Run Code Online (Sandbox Code Playgroud)

您必须相应地重写代码或将OCaml安装切换到版本4.03.0或更高版本.