یکی دیگر از تکنیک های موجود در زبان های برنامه نویسی تابع گرا مفهوم بازگشت و یا 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 (" ld ", n , fact ( n ) ) return ; } long int fact ( int n ) { if ( n >= ) return n fact ( n - ) ; else return ; } [/ c ++] خروجی این کد شبیه به قسمت زیر خواهد بود. خروجی: Enter a positive integer : Factorial of = حال اگر بخواهیم همین مفهوم بازگشت را در زبان برنامه نویسی Python به عنوان یک زبان تابع گرا پیاده سازی کنیم شبیه به قسمت زیر عمل خواهیم کرد. [ c ++] def fact ( n ) : if n = : return n else : return n fact ( n - ) accepts input from user num = int ( input (" Enter a number : ") ) check whether number is positive or not if num < : print (" Sorry , factorial does not exist for negative numbers ") else : print (" The factorial of " + str ( num ) + " is " + str ( fact ( num ) ) [/ c ++] خروجی این کد شبیه به قسمت زیر خواهد بود. خروجی: Enter a number : The factorial of is کاربرد بازگشت و یا Recursion در حل مسایل بسیار زیادی وجود دارند که در این قسمت در رابطه با آنها صحبت نمی کنیم اما تولید دنباله هایی از قبیل دنباله فیبوناچی و یا حتی خواندن محتویات فولدرهای تو در تو بر روی File System دو مورد از کاربرد توابع بازگشتی هستند. منبع: