我正在尝试遍历多路树,并像 List.map 那样映射它的值。
这是我的尝试
type 'a tree = Node of 'a * ('a tree list);;
let tree_map f t =
let rec aux acc tr =
match tr with
| Node(v, []) -> Node(f v, []) :: acc
| Node(v, sub) -> let r = List.fold_left aux acc sub in Node(f v, r) :: acc
in aux [] t
;;
let t = Node (1, [Node (2, [Node (1, [])]);
Node (3, []);
Node (1, [Node (5, []);
Node (2, …Run Code Online (Sandbox Code Playgroud) ocaml ×1