A tree fold first folds every child rose tree, then supplies the resulting list and the current label to the combining function:The label type
foldRTree :: (a -> [b] -> b) -> RTree a -> b
foldRTree f (Node x children) =
f x (map (foldRTree f) children)a and result type b are independent, so the polymorphic type needs no class constraint. With f x ys = x + sum ys, every label is counted exactly once; the illustrated labels sum to 28. Articles by others on the same topic
There are currently no matching articles.