RosettaCodeData/Task/Ackermann-function/Ballerina/ackermann-function.ballerina

15 lines
404 B
Plaintext

import ballerina/io;
function ackermann(int m, int n) returns int {
if m == 0 { return n + 1; }
if n == 0 { return ackermann(m - 1, 1); }
return ackermann(m - 1, ackermann(m, n - 1));
}
public function main() {
int[][] pairs = [ [1, 3], [2, 3], [3, 3], [1, 5], [2, 5], [3, 5] ];
foreach var p in pairs {
io:println(`A[${p[0]}, ${p[1]}] = ${ackermann(p[0], p[1])}`);
}
}