二叉树映射
mapping over binary tree
这是我映射二叉树的函数
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)
这是我映射二叉树的函数
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)