% $Id: ackermann.slang,v 1.0 2002/11/29 10:39:00 dada Exp $
% http://dada.perl.it/shootout/
%
% contributed by John E. Davis
define ack ();
define ack (M, N)
{
!if (M)
return( N + 1 );
!if (N)
return ( ack(M-1, 1) );
return( ack(M-1, ack(M, N-1)) );
}
define main()
{
variable NUM = integer (__argv[1]);
vmessage ("Ack(3,%d): %d", (NUM, ack(3, NUM)));
}
main()