/* The Great Win32 Language Shootout http://dada.perl.it/shootout/
contributed by Isaac Gouy (Nice novice)
To compile:
nicec --sourcepath=.. -d=. -a ackermann.jar ackermann
To run:
java -jar ackermann.jar 8
*/
void main(String[] args){
// NOTE: the type of n will be
// inferred by the compiler
let n = toSingleInt(args);
println("Ack(3," + n + "): " + ack(3,n));
}
int ack(int m, int n){
if (m == 0) return n + 1;
if (n == 0) return ack(m-1, 1);
return ack(m-1, ack(m, n-1));
}
int toSingleInt(String[] s){
try { return Integer.parseInt(s[0]); }
catch (Exception e){ return 1; } }