2017-10-16 58 views
0

這是我的函數映射在二叉樹映射在二叉樹

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 
+0

這將是最好的也給了'btree'類型構造在你的源代碼,以方便他人回答,即使它可能找出它應該是什麼。 – Mars

+0

我已經添加了類型構造函數 –

回答

3

您似乎已經獲得了功能應用程序切換。 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)