功能OCaml中的未绑定值

时间:2014-10-02 03:49:17

标签: tree ocaml

我有一个函数delete_data,它给出了一个错误“Unbound value delete_data” “tree_map delete_data l”。我的删除功能创建了一个新树,其中b在每个节点中被排除。作为家庭作业规则,我们不允许将功能更改为rec。有什么问题?

type 'a tree = Empty | Node of 'a * 'a tree * 'a tree

let rec tree_map f t = match t with
  | Empty -> Empty
  | Node(n, l, r) -> Node(f n , (tree_map f l), (tree_map f r));;

let delete_data t = match t with 
  Empty -> Empty
  | Node((a,b), l, r) -> Node(a, tree_map delete_data l, tree_map delete_data r);;

1 个答案:

答案 0 :(得分:1)

如果要从内部引用它,则需要将函数声明为递归函数。将let delete_data t =更改为let rec delete_data t =

相关问题