Я написал функцию обхода дерева в порядке:
let rec inOrder (tree: BinTree<'a>) : 'a list =
match tree with
| Leaf -> []
| Node(x,l,r) -> (inOrder l) @ [x] @ (inOrder r)
Теперь я хочу использовать эту функцию, чтобы «отобразить» все заметки и применить функцию, заданную в качестве параметра.Он должен взять функцию и дерево, а затем вернуть дерево.Это то, что у меня есть:
let mapInOrder f t =
inOrder t
|> Map.ofList
Например, если я дам функции этот ввод:
mapInOrder float (Node(1,Node(2,Leaf,Leaf),Node(3,Leaf,Leaf)));;
Я хочу вывод:
(Node(1.0,Node(2.0,Leaf,Leaf),Node(3.0,Leaf,Leaf)))