我有一棵有树枝和叶子的类型树。我想要得到叶子值的列表。目前,我只能计算树枝的数量。
我的树:
我的代码:
输出:
因此,我想得到一个列表:
我尝试过一些类似的变化,但没有成功。
任何帮助都将不胜感激。
我的树:
type 'a tr =
| Leaf of 'a
| Branch of 'a tr * 'a tr
我的代码:
let getList (tr:float tr)=
let rec toList tree acc =
match tree with
| Leaf _ -> acc 0
| Branch (tl,tr) -> toList tl (fun vl -> toList tr (fun vr -> acc(vl+vr+1)))
toList tr id
输出:
输入:
let test=Branch (Leaf 1.2, Branch(Leaf 1.2, Branch(Branch(Leaf 4.5, Leaf 6.6), Leaf 5.4)))
getList test
因此,我想得到一个列表:
[1.2; 1.2; 4.5; 6.6; 5.4]
我尝试过一些类似的变化,但没有成功。
| Branch (tl,tr) -> toList tl (fun vl -> toList tr (fun vr -> (vl::vr)::acc))
toList tr []
任何帮助都将不胜感激。