27 lines
416 B
Plaintext
27 lines
416 B
Plaintext
/* Ackermann function, in Jsish */
|
|
|
|
function ack(m, n) {
|
|
return m === 0 ? n + 1 : ack(m - 1, n === 0 ? 1 : ack(m, n - 1));
|
|
}
|
|
|
|
if (Interp.conf('unitTest')) {
|
|
Interp.conf({maxDepth:4096});
|
|
; ack(1,3);
|
|
; ack(2,3);
|
|
; ack(3,3);
|
|
; ack(1,5);
|
|
; ack(2,5);
|
|
; ack(3,5);
|
|
}
|
|
|
|
/*
|
|
=!EXPECTSTART!=
|
|
ack(1,3) ==> 5
|
|
ack(2,3) ==> 9
|
|
ack(3,3) ==> 61
|
|
ack(1,5) ==> 7
|
|
ack(2,5) ==> 13
|
|
ack(3,5) ==> 253
|
|
=!EXPECTEND!=
|
|
*/
|