एक वापसी विवरण वर्तमान फ़ंक्शन के कॉल-फ़्रेम के तत्काल कॉलर पर एक मान वापस करता है। पुनरावृत्ति के मामले में, यह तत्काल कॉलर उसी फ़ंक्शन का एक और आह्वान हो सकता है।
अधिकांश भाषाओं में, यदि आप किसी फ़ंक्शन के रिटर्न वैल्यू का उपयोग नहीं करते हैं जिसे आप (पुनरावृत्ति या नहीं) कहते हैं, या तो वह रिटर्न वैल्यू खारिज हो जाती है या यह एक डायग्नोसेबल त्रुटि है। कुछ भाषाएं हैं जहां अंतिम फ़ंक्शन कॉल का रिटर्न मान वर्तमान फ़ंक्शन इनवोकेशन के रिटर्न मूल्य के रूप में स्वचालित रूप से फिर से उपयोग किया जाता है, लेकिन वे सामान्य और पुनरावर्ती फ़ंक्शन कॉल के बीच अंतर नहीं करते हैं।
अप्रयुक्त रिटर्न मान मानने पर चुपचाप त्याग दें, अगर आपने इस तरह कोड लिखा था:
list *search_list(list *l, item_type x) {
if (l == NULL) return(NULL);
if (l->item == x)
return(l);
else
search_list(l->next, x); // no return!
}
तब search_list
केवल एक खाली सूची (NULL) के लिए एक परिभाषित मान लौटाएगा या यदि पहला आइटम आपके द्वारा खोजे जा रहे मूल्य से मेल खाता है। जैसे ही फ़ंक्शन पुनरावर्ती कॉल में जाता है, आपको नहीं पता कि परिणाम क्या होगा, क्योंकि पुनरावर्ती कॉल का परिणाम खारिज हो जाता है।
इसके अतिरिक्त, आप अपने फ़ंक्शन से एक मान वापस करने का वादा करते हैं, लेकिन आपके पास एक पथ (पुनरावर्ती एक) है जहां आप निर्दिष्ट नहीं करते हैं कि वापस जाने के लिए क्या मूल्य है। आपके द्वारा उपयोग की जाने वाली भाषा के आधार पर, यह आमतौर पर या तो एक अनिवार्य निदान में या अपरिभाषित व्यवहार में होता है (जिसके लिए शॉर्टहैंड होता है: कुछ भी हो सकता है और जो बिना किसी नोटिस के किसी भी समय बदल सकता है। किसी को भी पकड़ न लें, लेकिन यदि यह खराब हो जाए तो अपने आप को उत्तरदायी मानें। आपकी सबसे महत्वपूर्ण प्रस्तुति)। कुछ स्थितियां ऐसी हैं, जहां लापता रिटर्न वैल्यू काम करने लगती है, लेकिन हो सकता है कि अगली बार जब आप प्रोग्राम को चलाएं (बिना या फिर से चलाए बिना)।
return
करता है।