Am Beispiel von dem schon genannten "Sum" würd man schnell in einer Endlosschleife landen.
Denn "sum" wird nur bei Zuweisungen als Funktionsergebnis genommen und sonst ist es ein Aufruf.
Delphi-Quellcode:
Function Sum(const Values: TBytes): Integer;
var
B: Byte;
begin
Sum := 0; // entspricht Result :O 0;
for B in Values do
Sum := Sum + B; // hier würde es aber Result := Sum + B; sein, also ein rekursiver Aufruf
end;
Das führt zunächst erstmal zu einem Compilerfehler, da Sum einen Parameter erwartet. Nur bei parameterlosen Funktionen kommt es zur Rekursion mit baldigem Stackoverflow (und nicht zu einer Endlosschleife).