.
[cc1516.git] / examples / test.spl
1 digitToChar(x){
2 x = x % 10;
3 if(x == 0){ return '0'; }
4 else { if(x == 1){ return '1'; }
5 else { if(x == 2){ return '2'; }
6 else { if(x == 3){ return '3'; }
7 else { if(x == 4){ return '4'; }
8 else { if(x == 5){ return '5'; }
9 else { if(x == 6){ return '6'; }
10 else { if(x == 7){ return '7'; }
11 else { if(x == 8){ return '8'; }
12 else { return '9'; }}}}}}}}}
13 }
14
15 printInt (i){
16 if(i > 0){
17 print(digitToChar(i));
18 printInt(i/10);
19 }
20 }
21
22 printIntList (l){
23 print('[');
24 if(!isEmpty(l)){
25 printInt(l.hd);
26 l = l.tl;
27 }
28 while(!isEmpty(l)){
29 print(',');
30 printInt(l.hd);
31 l = l.tl;
32 }
33 print(']');
34 }
35
36 printIntListRP(l){
37 if(!isEmpty(l)){
38 print(',');
39 printInt(l.hd);
40 printIntListRP(l.tl);
41 }
42 }
43
44 printIntListR(l){
45 print('[');
46 if(!isEmpty(l)){
47 printInt(l.hd);
48 l = l.tl;
49 }
50 printIntListRP(l);
51 print("]\n");
52 }
53
54 map(f, l){
55 if(isEmpty(l)){
56 return [];
57 } else {
58 return f(l.hd) : map(f, l.tl);
59 }
60 }
61
62 plus(x, y){
63 return x + y;
64 }
65
66 ap(f, x){
67 return f(x);
68 }
69
70 main(){
71 [Int] l1 = 1 : 2 : [];
72 var fun = plus(1);
73
74 // var b = ap(fun, 3);
75 var res1 = map(fun, l1);
76 // var res2 = map(fun, res1);
77
78 // printIntListR(l1);
79 // printIntListR(res1);
80 // printIntListR(res2);
81
82
83
84 }