विषय
- #रिकर्सिव फ़ंक्शन
- #TCO
- #टेल रिकर्सन
रचना: 2024-10-12
रचना: 2024-10-12 18:47
कोडिंग टेस्ट की पढ़ाई करते समय, और टेक्स्ट में एनिमेशन प्रभाव डालते समय
रिकर्सिव फ़ंक्शन लिखते समय, AI की मदद से मुझे TCO नामक अवधारणा के बारे में पता चला।
टेल रिकर्सन ऑप्टिमाइज़ेशन रिकर्सिव कॉल से होने वाले स्टैक ओवरफ़्लो को रोकता है, और मेमोरी के उपयोग को कुशल बनाता है।
जावस्क्रिप्ट में, इसे es6 स्ट्रिक्ट मोड में समर्थित करने के लिए निर्दिष्ट किया गया है, लेकिन ऐसा लगता है कि अभी भी कई ब्राउज़र इसे सपोर्ट नहीं करते हैं।
सामान्य रिकर्सन
टेल रिकर्सन
रिकर्सिव फ़ंक्शन कॉल के साथ फ़ंक्शन के अंतिम ऑपरेशन को समाप्त करने की विधि को टेल रिकर्सन कहा जाता है।
फ़ंक्शन स्टैक फ़्रेम की आवश्यकता नहीं है, इसलिए मेमोरी का उपयोग अनुकूलित किया गया है!
जावस्क्रिप्ट में टेल रिकर्सन को लागू करने का तरीका ट्रैम्पोलिन तकनीक का उपयोग करना है।
इस विधि में, factorialTCO फ़ंक्शन सीधे परिणाम वापस करने के बजाय एक फ़ंक्शन देता है।
ट्रैम्पोलिन फ़ंक्शन इन लौटाए गए कार्यों को निष्पादित करता रहता है और अंतिम परिणाम प्राप्त करता है।
यह फ़ंक्शनल प्रोग्रामिंग में एक प्रमुख तकनीक है, और यह रिकर्सिव फ़ंक्शन की कमियों (स्टैक ओवरफ़्लो) को हल करने के मामले में दिलचस्प है। वास्तव में, जब मैंने केवल कोड देखा, तो मुझे यह समझने में मुश्किल हुई, इसलिए मुझे इसे फिर से देखना होगा।
टिप्पणियाँ0