Videli smo že nekaj primerov, ko ena funkcija kliče drugo. Možno je tudi, da druga funkcija spet kliče prvo:
Funkcija Prva
torej lahko pokliče funkcijo Druga
, čeprav je ta deklarirana pozneje v programu. Pomembno je le, da prvi klic funkcije Prva
nastopi šele po tistem, ko je tolmač že prebral deklaracijo funkcije Druga
. V našem primeru prvi klic funkcije Prva
nastopi šele čisto na koncu programa, tako da s tem ni težav.
Zaženimo zgornji program. Iz izpisa lahko lepo vidimo, kako so klici gnezdeni eden v drugem. Ko se izvajanje vrne iz vgnezdenega klica, se nadaljuje z naslednjim stavkom zunanjega klica in tako naprej.
Funkcija lahko kliče tudi neposredno sámo sebe – temu pravimo rekurzija.
Rekurzivne funkcije so še posebej uporabne za risanje fraktalov. Dvo- ali tridimenzionalne fraktale pa pogosto uporabljamo na področju računalniške grafike za risanje oz. ustvarjanje rastlin in dreves, oblakov, pokrajin itd.
Eden izmed prvih odkritih fraktalnih likov je bila Kochova snežinka (preberi opis procesa, s katerim je definirana Kochova snežinka):