تابع بازگشتی به تابعی میگن که در بدنه ی تابع، مجدد خودش رو صدا بزنه. تا زمانی که به شرط های پایه برسه این تابع خودش رو صدا میزنه.
بعضی صورت مسئله ها هستند که نوشتن تابع بازگشتی براشون راحت تره.
مثلا: دنباله فیبوناتچی، هر عدد، مجموعه ی دو عدد قبلی خودش هستش و جملات اول و دوم هم عدد یک هستش.
درین جا نوشتن تابعی که بتونه جمله ی Nا ُم دنباله رو محاسبه کنه، به روش بازگشتی خیلی ساده تر هستش (شما سعی کنید به روش غیر بازگشتی بنویسید، می بینید که ساده نخواهد بود و محاسبات ریاضیاتی لازم داره).
function fibonacci ( n ) {
if (n==1 || n==2) return 1;
else { return fibonacci (n-2) + fibonacci (n-1); }
}
fibonacci(1); // output: 1
fibonacci(2); // output: 1
fibonacci(6); // output: 8
fibonacci(10); // output: 55
ببینید شما یه تابع لازم دارید که مثلا براتون 2+2 رو محاسبه کنه. حالا درون اون تابع احتیاج دارید که دوباره 2+2 رو محاسبه کنید. آیا میایید 2 تا تابع برای این کار مینویسید؟ طبیعتا خیر. شما یک تابع مینویسید و در درون اون دوباره تابعتون رو فراخونی میکنید. این میشه تابع بازگشتی. پس هر وقت در درون یک تابع لازم دیدید دوباره همون کار رو تکرار کنید از تابع بازگشتی استفاده میکنید! به همین راحتی. امیدوارم که منظورم رو رسونده باشم. تابع فیبوناجی یه نمونه ساده و قابل هم این نمونه تابع هاست.
اکثر مواقع نیاز به تابع بازگشتی نیست، این به صورت مسئله برمیگرده.
شما از روی حل مسائل مختلف درین زمینه می تونید به درک درین باره دست پیدا کنید.
شکل این مسائل طوری هستش که ما میتونیم یک دنباله رو، براساس جملات قبلی اون دنباله محاسبه کنیم.
در مثالی که زدم هم این قضیه مشهود بودش.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟