Nim/tests/tack.nim
2009-09-15 23:22:22 +02:00

15 lines
332 B
Nim
Executable file

# the Ackermann function
proc ack(x, y: int): int =
if x != 0:
if y != 0:
return ack(x-1, ack(x, y-1))
return ack(x-1, 1)
else:
return y + 1
# if x == 0: return y + 1
# elif y == 0: return ack(x-1, 1)
# else: return ack(x-1, ack(x, y-1))
# echo(ack(0, 0))
write(stdout, ack(3, 4)) #OUT 125