SICP Section 1.2.1 में लेखक नीचे इस तरह के एक कोड उदाहरण देकर कैसे भाज्य समस्या को हल करने सतत प्रक्रिया का उपयोग कर को दिखाने के लिए:SICP पुनरावर्ती प्रक्रिया सतत प्रक्रिया बनाम: एक पुनरावर्ती प्रक्रिया का उपयोग कर उत्पन्न करने के लिए एक सतत प्रक्रिया
(define (factorial n)
(fact-iter 1 1 n))
(define (fact-iter product counter max-count)
(if (> counter max-count)
product
(fact-iter (* counter product)
(+ counter 1)
max-count)))
और कहें "यह परेशान प्रतीत हो सकता है कि हम एक पुनरावर्ती प्रक्रिया को संदर्भित करते हैं जैसे तथ्य-पुनरावर्तक प्रक्रिया को उत्पन्न करने के रूप में। हालांकि, प्रक्रिया वास्तव में पुनरावृत्त है: इसकी स्थिति पूरी तरह से अपने तीन राज्य चर से कब्जा कर लिया गया है, और एक दुभाषिया की आवश्यकता है प्रक्रिया को निष्पादित करने के लिए केवल तीन चर का ट्रैक रखें। "
मुझे समझ में नहीं आता कि लेखक का क्या अर्थ है। एक पुनरावर्ती प्रक्रिया और एक पुनरावर्ती प्रक्रिया के बीच क्या अंतर है? और उन्होंने एक पुनरावृत्ति प्रक्रिया उत्पन्न करने के बाद एक पुनरावर्ती प्रक्रिया क्यों कहा?
समझ गया, बहुत बहुत धन्यवाद। – zuozuo
यह वह जगह है जहां एइल कॉल ऑप्टिमाइज़ेशन हो सकता है, जहां स्टैक की आवश्यकता नहीं है और इसे छोड़ दिया जा सकता है, सही? –
@ जोनसुरेल बिल्कुल। उद्धृत सामग्री यह बता रही है कि पूंछ कॉल अनुकूलन कैसे होता है। – Barmar