2011-01-20 7 views
5

को आसानी से समझने योग्य ट्यूटोरियल की तलाश में मैं एक जूनियर सह-कार्यकर्ता को पढ़ाने की कोशिश कर रहा था कि कैसे रिकर्सिव सबराउटिन को इटरेटर (उसे ढेर ओवरफ्लोज़) में परिवर्तित करना है, और प्रक्रिया में व्याख्या करने की कोशिश करने में परेशानी में भाग गया समझने में आसान तरीका। I ऐसा कर सकता है, लेकिन मुझे नहीं पता कि इसे किसी ऐसे व्यक्ति के लिए कैसे समझाया जाए जो नहीं करता है।पुनरावृत्ति में पुनरावृत्ति को परिवर्तित करना - जटिल रिकर्सन

तो, जो मैं खोज रहा हूं वह एक अच्छा ट्यूटोरियल है जो दिखाता है कि एक नमूना जटिल रिकर्सिव सबराउटिन कैसे लेना है और इसे लूप में बदलना है।

कृपया ध्यान दें कि ट्यूटोरियल में उदाहरण जटिल होना चाहिए; मैं एक छोटी पूंछ रिकर्सन उदाहरण की तलाश में हूं। अधिक विशिष्ट होने के लिए, उदाहरण आदर्श रूप से उदाहरणों को प्रदर्शित करना चाहिए:

  • उसी सबराउटिन के भीतर एक से अधिक रिकर्सिव कॉल।

  • ही सबरूटीन (एक पुनरावर्ती कॉल और उनमें से कुछ स्वतंत्र के बाद कुछ भी शामिल है) के भीतर एक वापसी कथन की तुलना में अधिक

  • रिकर्सिव कॉल नेस्टेड नियंत्रण संरचना के बीच में हो रहा है (जैसे if ($x) { statement 0; if ($y) { statement1; statement2; $res = recursive_call(); $statement 3; optional return; }; statement_end; }

यह विस्तृत कोड नमूने के साथ एक व्यावहारिक ट्यूटोरियल होना चाहिए - जेनेरिक "अच्छी तरह से स्टैक्स पर पैरामीटर स्टोर करें" हाथ से लहराते हुए कि मेरा अधिकांश गुगलिंग बहुत अच्छा है लेकिन शुरुआती के लिए सहायक नहीं है।

कोई भी गैर-कार्यात्मक भाषा (सी ++, जावा, पर्ल, स्यूडोकोड, जो कुछ भी) करेगी, हालांकि प्रश्न में विशिष्ट कोड पर्ल में है।

वह हिस्सा जो वास्तव में समझदारी से समझाने में कठोर बनाता है, निश्चित रूप से नियंत्रण संरचनाओं के अंदर कई कॉल है - आपको मूल रूप से स्टैक को पॉप करते समय सही बिंदु में फिर से दर्ज करने की आवश्यकता होती है।

+0

नोट: मुझे लगता है कि कठिनाई हो सकती है कि जिस विधि का मैं उपयोग कर रहा हूं वह सबसे अच्छा नहीं है। – DVK

+0

@ एफएम - आपने अपना जवाब क्यों हटा दिया? एचओपी एक अच्छा संसाधन है, और यह उदाहरण सबसे निश्चित रूप से कवर करता है, यह मामूली नहीं है, हालांकि मुझे यह देखने के लिए फिर से पढ़ना होगा कि यह ट्यूटोरियल – DVK

+0

ठीक है, तो मैंने जवाब को पुनर्स्थापित किया है। यह एक अच्छा अध्याय है, भले ही यह इस मामले में बिल फिट नहीं हो सकता है (?)। – FMc

उत्तर

4

मैंने देखा है कि यह थोड़ी देर हो गया है, लेकिन क्या यह विषय काफी अच्छी तरह से कवर नहीं करता है: Higher Order Perl, अध्याय 5, "रिकर्सन से इटरेटर तक"?