Ocaml 二叉树上的映射

Ocaml 二叉树上的映射,ocaml,higher-order-functions,Ocaml,Higher Order Functions,这是我在二叉树上映射的函数 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:

这是我在二叉树上映射的函数

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

您似乎已经切换了函数应用程序<代码>根f应为
f根

let rec treemap t f = match t with
  | Empty -> Empty
  | Node (root, left, right) -> Node (f root, treemap left f, treemap right f)

您似乎已经切换了函数应用程序<代码>根f应为
f根

let rec treemap t f = match t with
  | Empty -> Empty
  | Node (root, left, right) -> Node (f root, treemap left f, treemap right f)

最好在源代码中也给出
btree
的类型构造函数,以便让其他人更容易回答,即使可能知道应该是什么。我已经添加了类型构造函数,最好在源代码中也给出
btree
的类型构造函数,为了让其他人更容易回答,即使有可能知道应该是什么。我添加了类型构造函数