33 lines
508 B
Plaintext
33 lines
508 B
Plaintext
import extensions;
|
|
|
|
// --- Ackermann function ---
|
|
|
|
ackermann(m,n)
|
|
{
|
|
if(n < 0 || m < 0)
|
|
{
|
|
InvalidArgumentException.raise()
|
|
};
|
|
|
|
m =>
|
|
0 : { ^n + 1 }
|
|
! : {
|
|
n =>
|
|
0 : { ^ackermann(m - 1,1) }
|
|
! : { ^ackermann(m - 1,ackermann(m,n-1)) }
|
|
}
|
|
}
|
|
|
|
public program()
|
|
{
|
|
for(int i:=0; i <= 3; i += 1)
|
|
{
|
|
for(int j := 0; j <= 5; j += 1)
|
|
{
|
|
Console.printLine("A(",i,",",j,")=",ackermann(i,j))
|
|
}
|
|
};
|
|
|
|
Console.readChar()
|
|
}
|