매핑

2017-10-16 3 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 ff root해야한다 :

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