पुनरावृत्ति छोरों की तुलना में आंतरिक रूप से बेहतर या बदतर नहीं है - प्रत्येक के फायदे और नुकसान हैं, और वे भी प्रोग्रामिंग भाषा (और कार्यान्वयन) पर निर्भर करते हैं।
तकनीकी रूप से, पुनरावृत्त लूप्स सामान्य कंप्यूटर सिस्टम को हार्डवेयर स्तर पर बेहतर तरीके से फिट करते हैं: मशीन कोड स्तर पर, एक लूप सिर्फ एक परीक्षण और एक सशर्त कूद है, जबकि पुनरावृत्ति (भोलेपन से लागू) में एक स्टैक फ्रेम को धक्का देना, कूदना, वापस आना और वापस पॉपिंग शामिल है। ढेर से। OTOH, पुनरावृत्ति के कई मामले (विशेष रूप से वे जो तुच्छ रूप से चलने वाले छोरों के बराबर हैं) लिखे जा सकते हैं ताकि स्टैक पुश / पॉप से बचा जा सके; यह तब संभव है जब पुनरावर्ती फ़ंक्शन कॉल अंतिम चीज़ है जो वापस लौटने से पहले फ़ंक्शन बॉडी में होती है, और इसे आमतौर पर टेल कॉल ऑप्टिमाइज़ेशन (या टेल रिकर्सन ऑप्टिमाइज़ेशन ) के रूप में जाना जाता है । एक ठीक से पूंछ-कॉल-अनुकूलित पुनरावर्ती फ़ंक्शन मशीन कोड स्तर पर पुनरावृत्त लूप के बराबर है।
एक और विचार यह है कि पुनरावृत्त छोरों को विनाशकारी राज्य अपडेट की आवश्यकता होती है, जो उन्हें शुद्ध (पक्ष-प्रभाव मुक्त) भाषा के शब्दार्थ के साथ असंगत बना देती है। यही कारण है कि हास्केल जैसी शुद्ध भाषाओं में लूप कंस्ट्रक्शन बिल्कुल नहीं होते हैं, और कई अन्य कार्यात्मक-प्रोग्रामिंग भाषाओं में या तो उनकी पूरी तरह से कमी है या जितना संभव हो उतना उनसे बचें।
इंटरव्यू में ये प्रश्न इतने अधिक क्यों दिखाई देते हैं, इसका कारण यह है कि इनका उत्तर देने के लिए, आपको कई महत्वपूर्ण प्रोग्रामिंग अवधारणाओं - चर, फ़ंक्शन कॉल, स्कोप और निश्चित रूप से लूप और पुनरावृत्ति - की गहन समझ की आवश्यकता है, और आपके पास है तालिका में मानसिक लचीलापन लाने के लिए जो आपको दो अलग-अलग कोणों से एक समस्या का सामना करने और एक ही अवधारणा के विभिन्न अभिव्यक्तियों के बीच स्थानांतरित करने की अनुमति देता है।
अनुभव और शोध बताते हैं कि उन लोगों के बीच एक रेखा है जो चर, संकेत और पुनरावृत्ति को समझने की क्षमता रखते हैं, और जो नहीं करते हैं। प्रोग्रामिंग में लगभग सब कुछ, जिसमें फ्रेमवर्क, एपीआई, प्रोग्रामिंग भाषा और उनके किनारे के मामले शामिल हैं, का अध्ययन और अनुभव प्राप्त किया जा सकता है, लेकिन यदि आप इन तीन मुख्य अवधारणाओं के लिए अंतर्ज्ञान विकसित करने में असमर्थ हैं, तो आप एक प्रोग्रामर होने के लिए अयोग्य हैं। एक पुनरावृत्त संस्करण में एक सरल पुनरावृत्त लूप का अनुवाद गैर-प्रोग्रामर को फ़िल्टर करने के सबसे तेज़ संभव तरीके के बारे में है - यहां तक कि एक अनुभवहीन प्रोग्रामर आमतौर पर इसे 15 मिनट में कर सकता है, और यह एक बहुत ही भाषा-अज्ञेय समस्या है, इसलिए उम्मीदवार चुन सकते हैं idiosyncracies पर ठोकर के बजाय उनकी पसंद की भाषा।
यदि आपको एक साक्षात्कार में इस तरह का प्रश्न मिलता है, तो यह एक अच्छा संकेत है: इसका मतलब है कि भावी नियोक्ता ऐसे लोगों की तलाश कर रहा है जो प्रोग्राम कर सकते हैं, न कि वे लोग जिन्होंने प्रोग्रामिंग टूल के मैनुअल को याद किया है।