Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,27 @@
|
||||
type Tree = Empty | Node
|
||||
|
||||
struct Empty {}
|
||||
|
||||
struct Node {
|
||||
value int
|
||||
left Tree
|
||||
right Tree
|
||||
}
|
||||
|
||||
// Note: a match expression, infers the type of its result
|
||||
// from the type of the return value in the first branch,
|
||||
// => it needs an explicit int(0) cast here:
|
||||
fn size(tree Tree) int {
|
||||
return match tree {
|
||||
Empty { int(0) }
|
||||
Node { 1 + size(tree.left) + size(tree.right) }
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
node1 := Node{30, Empty{}, Empty{}}
|
||||
node2 := Node{20, Empty{}, Empty{}}
|
||||
tree := Node{10, node1, node2}
|
||||
println('tree structure:\n ${tree}')
|
||||
println('tree size: ${size(tree)}')
|
||||
}
|
||||
Reference in new issue
Block a user