24 lines
576 B
Plaintext
24 lines
576 B
Plaintext
/**
|
|
Ackermann recursion, in Neko
|
|
Tectonics:
|
|
nekoc ackermann.neko
|
|
neko ackermann 4 0
|
|
*/
|
|
ack = function(x,y) {
|
|
if (x == 0) return y+1;
|
|
if (y == 0) return ack(x-1,1);
|
|
return ack(x-1, ack(x,y-1));
|
|
};
|
|
|
|
var arg1 = $int($loader.args[0]);
|
|
var arg2 = $int($loader.args[1]);
|
|
|
|
/* If not given, or negative, default to Ackermann(3,4) */
|
|
if (arg1 == null || arg1 < 0) arg1 = 3;
|
|
if (arg2 == null || arg2 < 0) arg2 = 4;
|
|
|
|
try
|
|
$print("Ackermann(", arg1, ",", arg2, "): ", ack(arg1,arg2), "\n")
|
|
catch problem
|
|
$print("Ackermann(", arg1, ",", arg2, "): ", problem, "\n")
|