Die Ackermann-Funktion wird u.a. dazu verwendet, um die Effizienz von Prozeduraufrufmechanismen zu testen.
Die Funktion wird definiert als:
A(x,y) = A(x-1,A(x,y-1))
A(0,y) = y+1
A(x,0) = A(x-1,1)
Voraussetzung ist, dass weder x noch y negativ sind.
Die harmlos aussehend Funktion hat es wegen der Rekursivität in sich.
Die Werte der Funktion sind für einige Beispiele wie folgt:
A(0,5)=6
A(1,5)=7
A(2,5)=13
A(3,5)=253
A(4,2) hat 19809 Stellen in der Dezimaldarstellung!
Die Anzahl der Iterationen ist für einige Beispiele wie folgt:
A(0,5)=1
A(1,5)=12
A(2,5)=90
A(3,5)=42438
Die Implementierung am Joyce ist als reine Spielerei zu sehen.
Das Programm fragt nach den Werten x und y und gibt dann pro Zeile aus