RosettaCodeData/Task/Ackermann-function/Elena/ackermann-function.elena

31 lines
469 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
import extensions;
ackermann(m,n)
{
2023-12-16 21:33:55 -08:00
if(n < 0 || m < 0)
{
InvalidArgumentException.raise()
};
2023-07-01 11:58:00 -04:00
2023-12-16 21:33:55 -08:00
m =>
0 { ^n + 1 }
! {
n =>
0 { ^ackermann(m - 1,1) }
! { ^ackermann(m - 1,ackermann(m,n-1)) }
}
2023-07-01 11:58:00 -04:00
}
public program()
{
2024-03-06 22:25:12 -08:00
for(int i:=0; i <= 3; i += 1)
2023-12-16 21:33:55 -08:00
{
2024-03-06 22:25:12 -08:00
for(int j := 0; j <= 5; j += 1)
2023-12-16 21:33:55 -08:00
{
console.printLine("A(",i,",",j,")=",ackermann(i,j))
}
};
2023-07-01 11:58:00 -04:00
2023-12-16 21:33:55 -08:00
console.readChar()
2023-07-01 11:58:00 -04:00
}