小编0xR*_*RyN的帖子

遍历多路树

我正在尝试遍历多路树,并像 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

0
推荐指数
1
解决办法
235
查看次数

标签 统计

ocaml ×1