इसी से मिलता-जुलता एक सवाल कुछ साल पहले पूछा गया है , लेकिन यह और भी पेचीदा है।
चुनौती सरल है। एक कार्यक्रम (पसंद का अपनी भाषा में) है कि बार-बार इस तरह के रूप में किसी भी पुनरावृत्ति संरचनाओं का उपयोग किए बिना कोड निष्पादित लिखें while
, for
, do while
, foreach
या goto
( तो तुम सब nitpickers के लिए, आप एक पाश उपयोग नहीं कर सकते )। हालांकि, फ़ंक्शन को स्वयं को समझ में लेने वाले फ़ंक्शन में पुनरावृत्ति की अनुमति नहीं है (नीचे परिभाषा देखें) । इससे यह चुनौती बहुत आसान हो जाएगी।
लूप को निष्पादित करने की आवश्यकता पर कोई प्रतिबंध नहीं है, लेकिन अपने उत्तर के साथ एक स्पष्टीकरण पोस्ट करें ताकि दूसरों को ठीक से समझ में आ सके कि क्या लागू किया जा रहा है।
उन लोगों के लिए जिन्हें परिभाषाओं पर लटका दिया जा सकता है, इस प्रश्न के लिए एक लूप की परिभाषा है:
A programming language statement which allows code to be repeatedly executed.
और इस प्रश्न के लिए पुनरावृत्ति की परिभाषा आपके मानक पुनरावर्ती कार्य की परिभाषा होगी:
A function that calls itself.
विजेता उत्तर होगा जो 16 जुलाई को सुबह 10 बजे पूर्वी समय में सबसे ऊपर होगा। सौभाग्य!
अपडेट करें:
भ्रम को शांत करने के लिए जो अभी भी व्यक्त किया जा रहा है, इससे मदद मिल सकती है:
ऊपर बताए गए नियम:
- छोरों या गोटो का उपयोग न करें
- कार्य स्वयं नहीं कह सकते
- 'पाश' में आप जो चाहें करें
यदि आप कुछ लागू करना चाहते हैं और नियम स्पष्ट रूप से इसे अस्वीकार नहीं करते हैं, तो आगे बढ़ें और इसे करें। कई जवाब पहले ही नियमों को झुका चुके हैं।
rep(f){f();f();}
- यह एक बयान है (कुछ भाषाओं में एक फ़ंक्शन घोषणा एक बयान है) जो कोड को बार-बार निष्पादित करने की अनुमति देता है। क्या यह अस्वीकृत है। आप लूप को लागू करने के लिए कोड मांगते हैं। यदि वह कोड वाक्यात्मक रूप से एक कथन है, तो आपने इसे अस्वीकृत कर दिया है। एक और उदाहरण f(b) { b(); g(b); }; g(b) { f(b); }
:। मैं कहूंगा f
कि एक पुनरावर्ती कार्य है (पारस्परिक रूप से पुनरावर्ती होने से g
)। क्या यह अस्वीकृत है?
function A
कॉल करेंfunction B
औरfunction B
कॉल करेंfunction A
जबकि 1 फ़ंक्शन कुछ करता है। चूंकि फ़ंक्शन खुद को कॉल नहीं करता है इसलिए इसे मानदंडों के आधार पर वैध होना चाहिए। ^