diff options
Diffstat (limited to 'examples/learn/32-inferred-calls.zc')
| -rw-r--r-- | examples/learn/32-inferred-calls.zc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/examples/learn/32-inferred-calls.zc b/examples/learn/32-inferred-calls.zc new file mode 100644 index 0000000..295d007 --- /dev/null +++ b/examples/learn/32-inferred-calls.zc @@ -0,0 +1,25 @@ +namespace; +include rt; + +fn layer0(n) { return seed(n); } +fn layer1(n) { return layer0(n); } +fn layer2(n) { return layer1(n); } +int seed(int n) { return n; } +fn countdown(n) { + if (n == 0) return seed(7); + return countdown(n - 1); +} +.u make_list(cap) { + let list = rt.new(cap + 1); + list[0] = cap; + return list; +} +.u pass_list(n) { + let list = make_list(n); + return list; +} +fn main() { + let list = pass_list(layer2(41)); + rt.put_n(list[0]); rt.put_c(32); + rt.put_n(countdown(3)); rt.put_c(10); +} |
