How to resolve the algorithm Ackermann function step by step in the EMal programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Ackermann function step by step in the EMal programming language
Table of Contents
Problem Statement
The Ackermann function is a classic example of a recursive function, notable especially because it is not a primitive recursive function. It grows very quickly in value, as does the size of its call tree.
The Ackermann function is usually defined as follows:
Its arguments are never negative and it always terminates.
Write a function which returns the value of
A ( m , n )
{\displaystyle A(m,n)}
. Arbitrary precision is preferred (since the function grows so quickly), but not required.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Ackermann function step by step in the EMal programming language
Source code in the emal programming language
fun ackermann = int by int m, int n
return when(m == 0,
n + 1,
when(n == 0,
ackermann(m - 1, 1),
ackermann(m - 1, ackermann(m, n - 1))))
end
for int m = 0; m <= 3; ++m
for int n = 0; n <= 6; ++n
writeLine("Ackermann(" + m + ", " + n + ") = " + ackermann(m, n))
end
end
You may also check:How to resolve the algorithm Loops/Foreach step by step in the Io programming language
You may also check:How to resolve the algorithm Hello world/Newline omission step by step in the M2000 Interpreter programming language
You may also check:How to resolve the algorithm Metaprogramming step by step in the Prolog programming language
You may also check:How to resolve the algorithm History variables step by step in the Julia programming language
You may also check:How to resolve the algorithm Prime decomposition step by step in the Prolog programming language