یکی از روش جالب برنامه نویسی ، برنامه سازی ریکرسیو ( recursive ) یا همون بازگشتیه .
در برنامه نویسی ، ما میتونیم در یک تابع ، توابع دیگه رو صدا بزنیم. در این حالت ، برنامه در این تابع متوقف میشه تا زمانی که مقدار تابع دوم محاسبه بشه و سپس ادامه پیدا میکنه. به مثال زیر توجه کنید : 
int sum2(int a ,int b)
{
	return a + b;
}
int sum3(int a,int b,int c)
{
	int temp = sum2(a, b);
	return sum2(temp , c);
}
در این جا ، اگر ما سه عدد را به تابع sum3 بدیم ، تابع در خط اول خودش متوقف میشه تا مقدار sum2 محاسبه بشه. بعد به خط دوم خودش میره و باز هم متوقف میشه تا باز هم مقدار این تابع محاسبه بشه.
با توجه به این حالت ، به نظر میرسد که مشکلی وجود نداره که تابعی را در خودش صدا بزنیم چون تابع قبلی متوقف میشه و تابع با مقادیر جدید اجرا میشه و بعد از محاسبه شدن این تابع با مقدار های جدید ، محاسبه تابع قبل ادامه پیدا میکنه.
به این حالت تابع بازگشتی میگن. یعنی صدا زدن تابعی در خودش.