update'
[cc1516.git] / examples / peano.spl
index 1c2cb78..f8e8c70 100644 (file)
@@ -1,3 +1,15 @@
+ackerman(m, n){
+       if(m ==0){
+               return n+1;
+       } else {
+               if(m>0 && n == 0){
+                       return ackerman(m-1, 1);
+               } else {
+                       return ackerman(m-1, ackerman(m, n-1));
+               }
+       }
+}
+
 hyper(n, a, b){
        if(n == 0){                                     return b + 1;
        } else { if(b == 0 && n == 1){  return a;
@@ -13,4 +25,29 @@ main(){
        print("3*3=", hyper(2, 3, 3));
        print("3^4=", hyper(3, 3, 4));
        print("2|3=", hyper(4, 2, 3));
+       
+       print("a(0, 0)=", ackerman(0, 0));
+       print("a(0, 1)=", ackerman(0, 1));
+       print("a(0, 2)=", ackerman(0, 2));
+       print("a(0, 3)=", ackerman(0, 3));
+
+       print("a(1, 0)=", ackerman(1, 0));
+       print("a(1, 1)=", ackerman(1, 1));
+       print("a(1, 2)=", ackerman(1, 2));
+       print("a(1, 3)=", ackerman(1, 3));
+
+       print("a(2, 0)=", ackerman(2, 0));
+       print("a(2, 1)=", ackerman(2, 1));
+       print("a(2, 2)=", ackerman(2, 2));
+       print("a(2, 3)=", ackerman(2, 3));
+
+       print("a(3, 0)=", ackerman(3, 0));
+       print("a(3, 1)=", ackerman(3, 1));
+       print("a(3, 2)=", ackerman(3, 2));
+       print("a(3, 3)=", ackerman(3, 3));
+
+       print("a(4, 0)=", ackerman(4, 0));
+/*     print("a(4, 1)=", ackerman(4, 1));
+       print("a(4, 2)=", ackerman(4, 2));
+       print("a(4, 3)=", ackerman(4, 3));*/
 }