v_scratch/16_interfaces/interface_example6.v

24 lines
371 B
V

struct Empty{}
struct Node{
value f64
left Tree
right Tree
}
type Tree = Empty | Node
fn sum(tree Tree) f64{
return match tree {
Empty { 0 }
Node { tree.value + sum(tree.left) + sum(tree.right)}
}
}
fn main(){
left := Node{0.2,Empty{}, Empty{}}
right := Node{0.3, Empty{}, Node{0.4, Empty{},Empty{},}}
tree := Node{0.5, left, right}
println(sum(tree))
}