.
[cc1516.git] / examples / test.spl
index 2428d67..6917e84 100644 (file)
@@ -1,4 +1,84 @@
+digitToChar(x){
+       x = x % 10;
+       if(x == 0){ return '0'; }
+       else { if(x == 1){ return '1'; }
+       else { if(x == 2){ return '2'; }
+       else { if(x == 3){ return '3'; }
+       else { if(x == 4){ return '4'; }
+       else { if(x == 5){ return '5'; }
+       else { if(x == 6){ return '6'; }
+       else { if(x == 7){ return '7'; }
+       else { if(x == 8){ return '8'; }
+       else { return '9'; }}}}}}}}}
+}
+
+printInt (i){
+       if(i > 0){
+               print(digitToChar(i));
+               printInt(i/10);
+       }
+}
+
+printIntList (l){
+       print('[');
+       if(!isEmpty(l)){
+               printInt(l.hd);
+               l = l.tl;
+       }
+       while(!isEmpty(l)){
+               print(',');
+               printInt(l.hd);
+               l = l.tl;
+       }
+       print(']');
+}
+
+printIntListRP(l){
+       if(!isEmpty(l)){
+               print(',');
+               printInt(l.hd);
+               printIntListRP(l.tl);
+       }
+}
+
+printIntListR(l){
+       print('[');
+       if(!isEmpty(l)){
+               printInt(l.hd);
+               l = l.tl;
+       }
+       printIntListRP(l);
+       print("]\n");
+}
+
+map(f, l){
+       if(isEmpty(l)){
+               return [];
+       } else {
+               return f(l.hd) : map(f, l.tl);
+       }
+}
+
+plus(x, y){
+       return x + y;
+}
+
+ap(f, x){
+       return f(x);
+}
+
 main(){
-       var b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-       return;
+       [Int] l1 = 1 : 2 : [];
+       var fun = plus(1);
+       
+//     var b = ap(fun, 3);
+       var res1 = map(fun, l1);
+//     var res2 = map(fun, res1);
+       
+//     printIntListR(l1);
+//     printIntListR(res1);
+//     printIntListR(res2);
+
+       
+
 }