REKURSIOON - Recursion
Turbo Pascalis. Faktoriaalfunktsiooni vôime kirja panna väga lihtsana:
FUNCTION Fakt(N: Byte): Longint;
BEGIN
IF N = 0 THEN
BEGIN Fakt := 1; Exit; END;
Fakt := N * Fakt(N - 1);
END; {Fakt}
Järgneva analüüsi huvides on siiski otstarbekas kirjutada see funktsioon vähem
kompaktsena.
Näide. Esitame n! arvutamise rekursiivse funktsiooni sellisena, kus vahetulemid N - 1 ja
Fakt(N - 1) omistatakse abimuutujatele A ja B:
FUNCTION Fakt(N: Byte): Longint;
VAR
A: Byte;
B: Longint;
BEGIN
IF N = 0 THEN
BEGIN Fakt := 1; Exit; END;
A := N - 1;
B := Fakt(A);
Fakt := (A + 1) * B;
END; {Fakt}
See funktsioonivariant kirjeldab adekvaatsemalt süsteemi tegelikku tööd funktsiooni
täitmisel. Nimelt loob translaator omaette mäluväljad mitte üksnes alamprogrammi