gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system 1 /**
2 * Primer veoma jednostavne rekurzivne funkcije u kojoj se pozivi linearno
3 * spuštaju do trivijalnog uslova i potom se direktno vraćaju do originalnog
4 * poziva. Pri tome ne postoje ni nikakve dodatne promenljive ili pozivi.
5 */
8 /**
9 * Originalna funkcija koja će biti simulirana
10 */
14 else
16 }
18 /**
19 * Simulirana verzija rekurzivne funkcije, u kojoj se samo posmatra
20 * rekurzivni spust i povratak, posto u ovoj jednostavnoj funkciji i ne
21 * postoji nista drugo. Takodje se na steku samo cuva vrednost parametra
22 * 'n', nije pravljen infotip jer nema potrebe.
23 */
27 // rekurzivni pozivi do trivijalnog slučaja
30 n--;
31 }
33 // trivijalni slučaj
36 // povratak iz rekurzije
40 }
42 }
44 // eksplicitni infotip koji se uklapa u algoritam pretvaranja funkcije
48 }
50 /**
51 * Simulirana verzija rekurzivne funkcije, sa svim detaljima datog algoritma
52 * za transformaciju. Mnogi detalji su nepotrebni za ovu funkciju, sto je i
53 * oznaceno, medjutim nije greska navesti ih
54 */
58 InfoTip el;
61 // rekurzivni pozivi do trivijalnog slučaja
67 n--;
68 }
70 // trivijalni slučaj
73 // povratak iz rekurzije
81 }
83 // posto se 'nemaPoziva' ne menja
84 // u ovom momentu ce s uvek biti prazan
85 // pa nema potrebe ni za ovom petljom
89 }
99 }
100 }