Datorprogrammējot termins rekursīvs raksturo funkciju vai metodi, kas atkārtoti aprēķina mazāku daļu, lai iegūtu gala rezultātu. Tas ir līdzīgs iterācijai, bet tā vietā, lai atkārtotu darbību kopumu, rekursīvā funkcija veic atkārtošanos, atsaucoties uz sevi savā definīcijā. Lai gan sākotnējā rekursīvās programmēšanas koncepcija var būt grūti saprotama, tā apgūšana var būt ļoti noderīga. Rekursija ir viens no datorzinātnes pamatinstrumentiem.
Klasisks piemērs ir rekursīvā metode skaitļa faktora aprēķināšanai. Skaitļa n faktors, kas rakstīts kā n!, ir rezultāts reizinot n ar visiem pozitīvajiem veselajiem skaitļiem, kas ir mazāki par n. Piemēram, 3! = 3 x 2 x 1, kas rada 6 un 4! = 4 x 3 x 2 x 1, kas izraisa 24. Efektīvs faktora aprēķināšanas veids ir rekursīvās funkcijas izmantošana.
Zemāk ir piemērs rekursīvai faktora funkcijai, kas rakstīta JavaScript.
funkciju faktori (n) {
atgriezties (n === 0)? 1: n * faktors (n-1);
}
Kā redzat, daļa no funkcijas faktora definīcijas ir faktora rezultāts, kas veikts mazākā veselā skaitlī. Uzaicinot sevi, tas var reizināt skaitli ar katru pozitīvo skaitli mazāk par to un pēc tam atgriezt gala rezultātu. Rekursīvās funkcijas var būt noderīgas citos aprēķinos, piemēram, Fibonacci skaitļu aprēķināšanā vai lielākajā kopīgajā dalītājā.
Izmantojot rekursīvo loģiku, var būt dažas lejupslīdes, ieskaitot bezgalīgas cilpas izveidi programmēšanā. Šā iemesla dēļ, nodrošinot, ka programmēšanas laikā ir glābšanas stāvoklis (piemēram, līdz došanās), tas samazina, ja ne novērš, bezgalīgas cilpas rašanās iespēju. Ja rodas bezgalīga cilpa, programma var izmantot datoru daudz atmiņas un var izraisīt programmas, operētājsistēmas vai datora darbības pārtraukšanu.
Escape, Function, Loop, Programmēšanas noteikumi