RosettaCodeData/Task/Ackermann-function/Maple/ackermann-function-3.maple
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

16 lines
337 B
Text

Ackermann := proc( m :: nonnegint, n :: nonnegint )
option remember; # optional automatic memoization
if m = 0 then
n + 1
elif m = 1 then
n + 2
elif m = 2 then
2 * n + 3
elif m = 3 then
8 * 2^n - 3
elif n = 0 then
thisproc( m - 1, 1 )
else
thisproc( m - 1, thisproc( m, n - 1 ) )
end if
end proc: