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

31 lines
505 B
Text
Raw Permalink Normal View History

2019-09-12 10:33:56 -07:00
import extensions;
2013-04-10 16:57:12 -07:00
2018-08-17 15:15:24 +01:00
ackermann(m,n)
2019-09-12 10:33:56 -07:00
{
if(n < 0 || m < 0)
{
InvalidArgumentException.raise()
};
2017-09-23 10:01:46 +02:00
2013-10-27 22:24:23 +00:00
m =>
2019-09-12 10:33:56 -07:00
0 { ^n + 1 }
: {
2017-09-23 10:01:46 +02:00
n =>
2019-09-12 10:33:56 -07:00
0 { ^ackermann(m - 1,1) }
: { ^ackermann(m - 1,ackermann(m,n-1)) }
}
}
2013-04-10 16:57:12 -07:00
2019-09-12 10:33:56 -07:00
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))
}
};
2013-04-10 16:57:12 -07:00
2019-09-12 10:33:56 -07:00
console.readChar()
}