Hallo,
richtig erkannt,
result ist im Endeffekt vordefiniert und gibt ein Funktionsergebnis zurück. Anstelle von
result kann man auch den Funktionsnamen verwenden, wenn ich das recht in Erinnerung habe.
Ohne Rückgabewert würde dir eine (rekursive) Funktion nichts bringen, da eine Funktion unter anderem dafür da ist, etwas zurückzugeben. Ich würde die Fakultät so berechnen (ungetestet):
Delphi-Quellcode:
function fakultaet(a: Integer): Integer;
begin
if (a = 0) or (a = 1) then // 0! = 1! = 1
result := 1
else
result := fakultaet(a - 1) * a;
end;
Das, worauf es ankommt bzw. das, was ein wenig Überlegung erfordert, ist der rekursive Aufruf, den du genau richtig erkannt hast:
zwsp := a * fakultaet(a-1)
Das "Drumherum" mit dem Rückgabewert wirst du vermutlich gleich verstehen, sobald du den obigen Code verinnerlichst.