پرووید
پرووید
خواندن ۱ دقیقه·۳ سال پیش

بررسی بازگشت (Recursion) در زبان های برنامه ‌نویسی تابع گرا

یکی دیگر از تکنیک های موجود در زبان های برنامه نویسی تابع گرا مفهوم بازگشت و یا Recursion می باشد. منظور از بازگشت و یا Recursion زمانی است که یک تابع در بدنه خود، خود را باری دیگر صدا می‌زند و این کار اصطلاحاً تحت عنوان Recursion و به این نوع توابع اصطلاحاً Recursive Function و یا توابع بازگشتی می گوییم. برای درک هرچه بهتر این نوع از توابع بهتر است مثالی را بررسی کنیم.

بررسی Recursion در زبان برنامه نویسی ++C

کدی که در قسمت زیر مشاهده می کنید نحوه انجام عملیات بازگشت و یا Recursion را در زبان برنامه نویسی ++C به عنوان یک زبان شی گرا نشان می ‌دهد. کد زیر را ببینید.

[c++]
#include
long int fact(int n);

int main() {
int n;
printf(“Enter a positive integer: “);
scanf(“%d”, &n);
printf(“Factorial of %d = %ld”, n, fact(n));
return 0;
}
long int fact(int n) {
if (n >= 1)
return n*fact(n-1);
else
return 1;
}
[/c++]

خروجی این کد شبیه به قسمت زیر خواهد بود.

خروجی:

Enter a positive integer: 5
Factorial of 5 = 120

حال اگر بخواهیم همین مفهوم بازگشت را در زبان برنامه نویسی Python به عنوان یک زبان تابع گرا پیاده سازی کنیم شبیه به قسمت زیر عمل خواهیم کرد.

[c++]
def fact(n):
if n == 1:
return n
else:
return n* fact (n-1)

# accepts input from user
num = int(input(“Enter a number: “))
# check whether number is positive or not

if num < 0:
print(“Sorry, factorial does not exist for negative numbers”)
else:
print(“The factorial of ” + str(num) + ” is ” + str(fact(num)))
[/c++]

خروجی این کد شبیه به قسمت زیر خواهد بود.

خروجی:

Enter a number: 6
The factorial of 6 is 720

کاربرد بازگشت و یا Recursion در حل مسائل بسیار زیادی وجود دارند که در این قسمت در رابطه با آنها صحبت نمی کنیم؛ اما تولید دنباله هایی از قبیل دنباله فیبوناچی و یا حتی خواندن محتویات فولدرهای تو در تو بر روی File System دو مورد از کاربرد توابع بازگشتی هستند.

منبع: وبسایت پرووید

زبان برنامه نویسی تابع گرا چیست؟بازگشت یا recursion چیست؟
شاید از این پست‌ها خوشتان بیاید