11 lines
255 B
D
11 lines
255 B
D
ulong ackermann(in ulong m, in ulong n) pure nothrow @nogc {
|
|
if (m == 0)
|
|
return n + 1;
|
|
if (n == 0)
|
|
return ackermann(m - 1, 1);
|
|
return ackermann(m - 1, ackermann(m, n - 1));
|
|
}
|
|
|
|
void main() {
|
|
assert(ackermann(2, 4) == 11);
|
|
}
|