program w Adzie:

 function f(n: Integer) return Integer is
 
   function g(n: Integer) return Integer is
   begin
     if n <= 1 then return 1;
     else return n * f(n - 1);
     end if;
   end g;
   
 begin
   if n <= 1 then return 1;
   else return n * g(n - 1);
   end if;
 end f;

Jaka będzie największa długość łańcucha dynamicznego i statycznego, jeśli w wyrażeniu wywołano f(5)? Przedstaw schematycznie zawartość stosu w chwili, gdy zostanie wywołane f(1).

[Edytuj]