puti @= fn(x: int) { #C("printf(\"%ld\\n\", (long)x); "); }; putch @= fn(x: char) { #C("printf(\"%c\\n\", x); "); }; putf @= fn(x: float) { #C("printf(\"%f\\n\", (double)x); "); }; sum @= fn(x: []int, n: int) int { p := &x[0]; end := &x[n-1]; total := 0; while p <= end { total = total + *p; p = p + 1; } total }; f @= fn() int { N @= 10; numbers := new(int, N); i := 0; while i < N { numbers[i] = i; i = i + 1; } sum(numbers, N) }; main @= fn() { a: [f()]int; puti(f()); };