映射在二叉树
问题描述:
这是我的函数映射在二叉树映射在二叉树
type 'a btree = Empty
|Node of 'a * 'a btree * 'a btree
let rec treemap t f = match t with
|Empty -> Empty
|Node(root,left,right)-> Node(root f, treemap left f, treemap right f)
类型的功能必须是:
treemap: 'a btree -> ('a ->'b) -> 'b tree
,但我的功能,而不是返回此类型:
val treemap : ('a -> 'b) btree -> 'a -> 'b btree
答
您似乎已经获得了功能应用程序切换。 root f
应该f root
:
let rec treemap t f = match t with
| Empty -> Empty
| Node (root, left, right) -> Node (f root, treemap left f, treemap right f)
这将是最好的也给了'btree'类型构造在你的源代码,以方便他人回答,即使它可能找出它应该是什么。 – Mars
我已经添加了类型构造函数 –