RosettaCodeData/Task/Ackermann-function/D/ackermann-function-1.d

12 lines
255 B
D
Raw Permalink Normal View History

2015-02-20 00:35:01 -05:00
ulong ackermann(in ulong m, in ulong n) pure nothrow @nogc {
2013-04-10 16:57:12 -07:00
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);
}