Prikaz jedne poruke
Stara 26.12.2015, 17:11   #4
Remedy
Veteran
 
Član od: 5.11.2005.
Poruke: 726
Zahvalnice: 138
Zahvaljeno 160 puta na 126 poruka
Određen forumom Re: Javascript - međusobno rekurzivne funkcije

Citat:
Neutrino kaže: Pregled poruke
Rekurzivne funkcije su kao seks - koliko puta uđeš toliko puta moraš i da izađeš i uvek nastavljaš tamo gde si poslednji put izašao
Duhovito i lako se pamti.

Ajd' i ja malo da pametujem. Da bi bilo ociglednije to rekurzivno pozivanje, funkcije "b" i "c" mozemo da izbacimo iz igre. Dakle:
Kod:
function a(foo){
    if (foo > 20) return foo;
    return a((foo + 2) * 2) + 2;
}
Funkcija "a" se poziva 4 puta, prvi put je mi pozivamo (sa 1) i jos 3 puta rekurzivno (sa 6, 16, 36). Kada je pozvana sa 36, "if" uslov je ispunjen, vracamo vrednost, ali gde? U "treci poziv", dakle umesto "a((foo + 2) * 2)" sada imamo 36. Onda se "36 + 2" vraca u "drugi poziv", pa 40 u "prvi poziv" i na kraju on vraca 42 promenljivoj "val". Naravno, u originalu "a" vraca u "c", pa "c" vraca u "b", pa ona u "a", pa jos 2 puta tako u krug, i onda ovo postaje manje vidljivo.
Remedy je offline   Odgovor sa citatom ove poruke