--- /dev/null
+method f()
+ return labs(); /* aus der C-Library, erster parameter ist this!*/
+end;
--- /dev/null
+extern long f(long);
+RET(f(5)==5 && f(-3)==3);
--- /dev/null
+method f(x y)
+ return mymin(y,x);
+end;
+
+method mymin(x y)
+ if y<x then
+ return y;
+ else
+ return x;
+ end;
+end;
--- /dev/null
+extern long f(long,long,long);
+
+RET(f(42,5,3)==3 && f(42,-3,5)==-3);
--- /dev/null
+method f(x)
+ return (x-1).g(this-(-1));
+end;
+/*
+#C-Funktion:
+#long g(long x, long y)
+#{
+# return h(x*2, y*3)+1;
+#}
+*/
+method h(x)
+ return x*this;
+end;
--- /dev/null
+#define DEFINE_G
+
+extern long f(long,long);
+
+
+printf("f(%d,%d) == %d, sollte %d\n",5,3,f(5,3),73);
+
+RET(f(5,3)==73);
+
+
--- /dev/null
+method fib(n)
+if 1<n then
+ return fib(n-2)-(-1*fib(n-1));
+else
+ return n;
+end;
+end;
--- /dev/null
+extern long fib(long,long);
+RET(2==fib(42,3));
--- /dev/null
+method a(m n)
+ if m=0 then
+ return n-(-1);
+ else
+ if (0<m) then
+ if (n=0) then
+ return a(m-1,1);
+ else
+ return a(m-1,a(m,n-1));
+ end;
+ else
+ return a(m-1,a(m,n-1));
+ end;
+ end;
+end;
--- /dev/null
+extern long a(long,long,long);
+RET(3==a(42,1,1));
--- /dev/null
+method tarai(x y z)
+ if y<x then
+ return tarai(
+ tarai(x-1,y,z),
+ tarai(y-1,z,x),
+ tarai(z-1,x,y));
+ else
+ return y;
+ end;
+end;
--- /dev/null
+extern long tarai(long,long,long,long);
+RET(3 == tarai(42,2,1,3));
--- /dev/null
+method fib(n)
+ if 1<n then
+ var f1 := fib(n-1);
+ var f2 := fib(n-2);
+ return f1-(-1*f2);
+ else
+ return n;
+ end;
+end;
--- /dev/null
+extern long fib(long,long);
+RET(2==fib(42,3));