21 lines
375 B
Plaintext
21 lines
375 B
Plaintext
use fmt;
|
|
|
|
fn ackermann(m: u64, n: u64) u64 = {
|
|
if (m == 0) {
|
|
return n + 1;
|
|
};
|
|
if (n == 0) {
|
|
return ackermann(m - 1, 1);
|
|
};
|
|
return ackermann(m - 1, ackermann(m, n - 1));
|
|
};
|
|
|
|
export fn main() void = {
|
|
for (let m = 0u64; m < 4; m += 1) {
|
|
for (let n = 0u64; n < 10; n += 1) {
|
|
fmt::printfln("A({}, {}) = {}", m, n, ackermann(m, n))!;
|
|
};
|
|
fmt::println()!;
|
|
};
|
|
};
|