20 lines
497 B
Plaintext
20 lines
497 B
Plaintext
% Ackermann function
|
|
ack = proc (m, n: int) returns (int)
|
|
if m=0 then return(n+1)
|
|
elseif n=0 then return(ack(m-1, 1))
|
|
else return(ack(m-1, ack(m, n-1)))
|
|
end
|
|
end ack
|
|
|
|
% Print a table of ack( 0..3, 0..8 )
|
|
start_up = proc ()
|
|
po: stream := stream$primary_output()
|
|
|
|
for m: int in int$from_to(0, 3) do
|
|
for n: int in int$from_to(0, 8) do
|
|
stream$putright(po, int$unparse(ack(m,n)), 8)
|
|
end
|
|
stream$putl(po, "")
|
|
end
|
|
end start_up
|