二叉树语法错误

时间:2017-01-19 10:47:12

标签: ocaml

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

type 'a bin_tree = Node of { data : 'a ; left : 'a bin_tree; right : 'a bin_tree; } | Leaf

Merlin告诉我:类型中的错误,期待_

2 个答案:

答案 0 :(得分:5)

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

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

type t = A of { ... } | B

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

type t = A of r | B and r = { ... }

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

答案 1 :(得分:0)

记录类型尚未定义 - 记录定义与bin_tree相关,因此您必须共同定义它们,请尝试:

 type 'a pp = {data : 'a; left: 'a bin_tree; right : 'a bin_tree} and
      'a bin_tree = Node of 'a pp | Leaf ;;
相关问题