RosettaCodeData/Task/Ackermann-function/Nemerle/ackermann-function-3.nemerle
2015-11-18 06:14:39 +00:00

9 lines
231 B
Text

def ackermann = {
def A(m, n) {
| (0, n) => n + 1
| (m, 0) when m > 0 => A(m - 1, 1)
| (m, n) when m > 0 && n > 0 => A(m - 1, A(m, n - 1))
| _ => throw Exception("invalid inputs");
}
A
}