بازگشت (Recursion)
«بازگشت (Recursion)» یعنی یک «تابع (Function)» خودش را صدا بزند. این کار مثل پایین رفتن از پله ها است تا به صفر برسی. با این روش می توانیم روی داده ها حلقه بزنیم و نتیجه بگیریم.
بازگشت چگونه کار می کند؟
هر بار که تابع اجرا می شود، مسئله کوچک تر می شود. سپس وقتی شرط پایان برسد، محاسبات برمی گردد. این برگشت نتایج را جمع می کند.
هشدار: حتماً شرط پایان بگذار. وگرنه برنامه متوقف نمی شود و حافظه هدر می رود.
نمونه بازگشتی در R
این تابع تا وقتی مقدار بزرگ تر از صفر است، خودش را دوباره صدا می زند.
tri_recursion <- function(k) {
if (k > 0) {
result <- k + tri_recursion(k - 1)
print(result)
} else {
result <- 0
return(result)
}
}
tri_recursion(6)
گام های امن برای نوشتن بازگشت
- یک شرط پایان ساده تعریف کن.
- مسئله را در هر فراخوانی کوچک تر کن.
- پس از بازگشت، نتیجه ها را ترکیب کن.
- با ورودی های کوچک تست کن.
- در صورت نیاز، چاپ میان مرحله ای بگذار.
نکته: اگر راه ساده تکراری داری، بازگشت لازم نیست. اما برای ساختارهای درختی، بازگشت خیلی تمیز است.
منابع و ادامه یادگیری
برای پیوند مفهومی، توابع تو در تو را هم ببین. همچنین صفحه بازگشت در R کلیدواژه را تقویت می کند. سپس به متغیرهای سراسری سر بزن.
جمع بندی سریع
- بازگشت یعنی تابع خودش را صدا بزند.
- همیشه شرط پایان قرار بده.
- مسئله را هر بار کوچک تر کن.
- چاپ میان مرحله ای به فهم کمک می کند.