blob: d56944ac105bb8a16628dc3e784bfb0a02a9d766 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
io ::= nms {
#include "std/io.toc";
};
LinkedList ::= struct(t::Type) {
head : t;
tail : &LinkedList(t);
};
arr_to_ll ::= fn(t::Type, data: []t) l : LinkedList(t) {
if data.len == 1 {
l.head = data[0];
l.tail = 0 as &LinkedList(t);
} else {
l.head = data[0];
l.tail = new(LinkedList(t));
*l.tail = arr_to_ll(t, data[1:]);
}
};
do_thing ::= fn() int {
a := new(int, 3);
a[0] = 10;
a[1] = 20;
a[2] = 30;
x := arr_to_ll(int, a);
p := &x;
i := 0;
while p {
io.puti(p.head);
p = p.tail;
i += 1;
}
i
};
main ::= fn() {
x ::= do_thing();
do_thing();
};
|