فهرست سرفصل‌های 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)
نتیجه‌ای برای جستجو یافت نشد.
مستندات زبان برنامه نویسی R

R — توابع تو در تو (Nested Functions)

آخرین بروزرسانی: 1404/08/14

توابع تو در تو (Nested Functions)

«تابع تو در تو (Nested Function)» یعنی یک تابع داخل تابع دیگر باشد، یا خروجی یک تابع را ورودی تابع دیگر کنیم. این کار کد را منظم می کند و تکرار را کم می کند. «پارامتر (Parameter)» نام ورودی است و «آرگومان (Argument)» مقدار ورودی هنگام فراخوانی است.

دو روش ساخت توابع تو در تو

یا یک تابع را داخل تابع دیگر صدا بزن، یا یک تابع را داخل بدنه تابع دیگر تعریف کن.

1) فراخوانی تابع داخل تابع دیگر

در این روش، خروجی تابع اول می شود ورودی تابع دوم. مثل جمع نمره ها در دو مرحله.

Nested_function <- function(x, y) {
  a <- x + y
  return(a)
}

Nested_function(Nested_function(2, 2), Nested_function(3, 3))

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

اینجا ابتدا 2+2 و 3+3 حساب می شود. سپس دو نتیجه باهم جمع می شوند. خروجی 10 است.

2) تعریف تابع داخل تابع دیگر

در این روش، تابع داخلی فقط داخل تابع بیرونی در دسترس است. مثل کمک تابع خصوصی.

Outer_func <- function(x) {
  Inner_func <- function(y) {
    a <- x + y
    return(a)
  }
  return(Inner_func)
}

output <- Outer_func(3)
output(5)

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

اول تابع بیرونی را صدا بزن تا Inner_func را بگیری. سپس با مقدار y آن را اجرا کن. خروجی 8 است.

تمرین گام به گام

  1. یک تابع ساده جمع بساز.
  2. همان تابع را دوبار تو در تو فراخوانی کن.
  3. یک نسخه با تابع داخلی پیاده سازی کن.
  4. هر دو را با ورودی های مختلف تست کن.
  5. زمان مناسب هر روش را یادداشت کن.

نکته: اگر می خواهی فقط همان فایل از تابع داخلی استفاده کند، روش دوم بهتر است. برای ترکیب نتایج سریع، روش اول ساده تر است.

برای یادگیری پایه ها، صفحه تابع ها در R را ببین. همچنین فصل بازگشت (Recursion) بعد از توابع تو در تو مفید است.

جمع بندی سریع

  • دو روش داریم: فراخوانی تو در تو یا تعریف تو در تو.
  • روش اول برای ترکیب نتایج سریع است.
  • روش دوم محدوده تابع داخلی را محدود می کند.
  • نام ورودی پارامتر است؛ مقدارش آرگومان.