The Ackermann function, named after Wilhelm Ackermann, is a multi-variable function from natural numbers to natural numbers with a very fast rate of growth. The function relies on solving with recursive calculations. In this guide, we're going to show you how to calculate Ackermann function in Excel.
Ackermann Function and recursion
Recursion is a term for describing the behavior for when a function calls itself from within its own code. The Ackermann function can call itself as well. Here is the equation:
If m and n values are not equal to 0 (third line), the function calls itself to calculate its second argument. The called function will call another, until the conditions in the first two rows are met.
Ackermann Function in Excel
Before the LAMBDA function, the only option for recursive calculations in Excel was using VBA. VBA allows you to create your own user defined functions and use them recursively. However, VBA requires some coding knowledge.
Thanks to the new LAMBDA function, you can create your own functions using Excel formulas, without any coding experience. Briefly, the LAMBDA function is a special function that you can use in a named range and allows you to use that named range as an individual function. It also supports recursive calculations.
Let’s see how you can create the Ackermann function using the LAMBDA function.
Creating a user defined function with LAMBDA
- Open the New Name dialog by following the Formulas > Define Name path in the Ribbon.
- Type in a friendly name for your formula. We used “Ack”.
- Enter the formula below. Please note that the formula contains the “Ack” string as the formula name. This is how we are building a recursive calculation. Thus, if the name of your formula is different, update the formula accordingly.=LAMBDA(m,n,IF(m=0,n+1,IF(n=0,Ack(m-1,1),Ack(m-1,Ack(m,n-1)))))
- Click the OK button to create your user defined function.
- Once the named range is saved, you can use it as a regular formula.
Let us briefly explain how the LAMBDA function works. The LAMBDA function’s last argument should always be the formula itself. The arguments before the formula are the arguments which will be used in the formula.
In the Ackermann function example, the function needs 2 arguments: m and n. Thus, the first arguments in the LAMBDA function are m and n in this example. The last argument is the formula that uses the m and n parameters.
As of writing this article, you need Office 365 to access the LAMBDA function.