fn pow2(exponent: u32) -> u32 { var value: u32 = 1 var i: u32 = 0 while i < exponent { value = value * 2 i = i + 1 } return value } fn ackSmall(m: u32, n: u32) -> u32 { if m == 0 { return n + 1 } if m == 1 { return n + 2 } if m == 2 { return 2 * n + 3 } if m == 3 { return pow2(n + 3) - 3 } return 0 } pub fn main(world: World) -> Void raises { if ackSmall(0, 4) == 5 && ackSmall(1, 4) == 6 && (ackSmall(2, 4) == 11 && ackSmall(3, 2) == 29) { check world.out.write("ackermann ok\n") } }