Du hast noch einen Fehler in deiner Fakultätsfunktion. 0! = 1 und dieser Fall wird bei dir nicht abgefragt.
Allgemein: Rekursion ist manchmal einfacher zum hinschreiben und ja bei großen Funktionen kann, man den Stack gleich mal voll laufen lassen. Aber bitte löst doch mal die Ackermann-Funktion iterativ Es gibt Problemstellungen die sich mit Rekursion geschickt lösen lassen. Z. B. auf eine einfache Art einen Baum zu traversieren etc.
Da es ja leider keinen Konditionaloperator gibt in AutoIt, würde ich das so lösen:
[autoit]func fakul($n)
[/autoit]
if($n==0 OR $n==1) then return 1;
return $n*fakul($n-1);
endfunc
Zum Vergleich Fakultät als Iteration:
func fakul($n)
If $n < 0 Then Return -1 ; Fehler
If $n < 2 Then Return 1
For $i = $n-1 To 1 Step -1
$n *= $i
Next
return $n
endfunc