فهرست سرفصل‌های R
خانه (HOME) معرفی (Intro) شروع کار (Get Started) سینتکس (Syntax) چاپ (Print) کامنت ها (Comments) متغیرها (Variables) اتصال عناصر (Concatenate Elements) چندین متغیر (Multiple Variables) نام متغیرها (Variable Names) انواع داده (Data Types) اعداد (Numbers) ریاضی (Math) رشته ها (Strings) کاراکترهای فرار (Escape Characters) بولی ها (Booleans) عملگرها (Operators) اگر...وگرنه (If...Else) اگر تو در تو (Nested If) و/یا (And Or) حلقه while (While Loop) حلقه for (For Loop) حلقه تو در تو (Nested Loop) تابع ها (Functions) توابع تو در تو (Nested Functions) بازگشت (Recursion) متغیرهای سراسری (Global Variables) ساختارهای داده (Data Structures) بردارها (Vectors) فهرست ها (Lists) ماتریس ها (Matrices) آرایه ها (Arrays) داده فریم ها (Data Frames) فاکتورها (Factors) ترسیم (Plot) خطی (Line) پراکندگی (Scatterplot) نمودار دایره ای (Pie Charts) نمودار میله ای (Bars) مقدمه آمار (Statistics Intro) مجموعه داده (Data Set) بیشینه و کمینه (Max and Min) میانگین، میانه، نما (Mean Median Mode) میانه (Median) نما (Mode) صدک ها (Percentiles) مثال ها (Examples) کامپایلر (Compiler) تمرین ها (Exercises) آزمون (Quiz) سیلابس (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.

بازگشت (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)

مشاهده در ادیتور

گام های امن برای نوشتن بازگشت

  1. یک شرط پایان ساده تعریف کن.
  2. مسئله را در هر فراخوانی کوچک تر کن.
  3. پس از بازگشت، نتیجه ها را ترکیب کن.
  4. با ورودی های کوچک تست کن.
  5. در صورت نیاز، چاپ میان مرحله ای بگذار.

نکته: اگر راه ساده تکراری داری، بازگشت لازم نیست. اما برای ساختارهای درختی، بازگشت خیلی تمیز است.

منابع و ادامه یادگیری

برای پیوند مفهومی، توابع تو در تو را هم ببین. همچنین صفحه بازگشت در R کلیدواژه را تقویت می کند. سپس به متغیرهای سراسری سر بزن.

جمع بندی سریع

  • بازگشت یعنی تابع خودش را صدا بزند.
  • همیشه شرط پایان قرار بده.
  • مسئله را هر بار کوچک تر کن.
  • چاپ میان مرحله ای به فهم کمک می کند.