मोनैड्स कार्यात्मक प्रोग्रामिंग में एक शक्तिशाली अवधारणा है जो साइड इफेक्ट्स को प्रबंधित करने और स्वच्छ, कंपोज़ेबल कोड बनाए रखने में मदद करती है।
इस पोस्ट में, हम जावास्क्रिप्ट का उपयोग करके शायद मोनैड डिज़ाइन पैटर्न का पता लगाएंगे, जिसका उपयोग उन परिचालनों को संभालने के लिए किया जाता है जो विफल हो सकते हैं या शून्य/अपरिभाषित हो सकते हैं।
सरल शब्दों में, एक मोनैड एक डिज़ाइन पैटर्न है जो आपको मूल्यों, श्रृंखला संचालन और साइड इफेक्ट्स को लगातार तरीके से संभालने की अनुमति देता है।
शायद मोनैड आपके कोड को अशक्त जांचों से प्रभावित किए बिना अशक्त या अपरिभाषित मानों से निपटने के लिए विशेष रूप से उपयोगी है।
यह मोनैड एक मान लपेटेगा और यदि वह मौजूद है तो उस मान पर फ़ंक्शंस लागू करने के तरीके प्रदान करेगा।
// Maybe Monad Implementation class Maybe { constructor(value) { this.value = value; } static of(value) { return new Maybe(value); } isNothing() { return this.value === null || this.value === undefined; } map(fn) { return this.isNothing() ? Maybe.of(null) : Maybe.of(fn(this.value)); } getOrElse(defaultValue) { return this.isNothing() ? defaultValue : this.value; } }
आइए एक ऐसे फ़ंक्शन पर विचार करें जो विभाजन करता है लेकिन विभाजन को शून्य से संभालने की आवश्यकता है।
const safeDivide = (numerator, denominator) => { return denominator === 0 ? Maybe.of(null) : Maybe.of(numerator / denominator); }; const result = Maybe.of(10) .map(x => x * 2) // 20 .map(x => x 1) // 21 .map(x => safeDivide(x, 0)) // Maybe(null) .getOrElse('Division by zero'); console.log(result); // Output: Division by zero
शायद मोनैड प्रत्येक मध्यवर्ती मान को लपेटता है, परिवर्तन केवल तभी लागू करता है जब मान शून्य या अपरिभाषित न हो।
सेफडिवाइड फ़ंक्शन एक मेब मोनैड लौटाता है, जो शून्य से विभाजन की सुरक्षित हैंडलिंग सुनिश्चित करता है।
शायद मोनैड जावास्क्रिप्ट में शून्य या अपरिभाषित मानों को प्रबंधित करने के लिए एक शक्तिशाली उपकरण है। मानों को एक मोनड में लपेटकर, आप संचालन को सुरक्षित रूप से श्रृंखलाबद्ध कर सकते हैं और स्वच्छ, अधिक पठनीय कोड बनाए रख सकते हैं। भिक्षुओं के लिए यह सीधा दृष्टिकोण जावास्क्रिप्ट में आपके कार्यात्मक प्रोग्रामिंग टूलकिट को काफी बढ़ा सकता है।
अधिक तकनीकी जानकारी और व्यावहारिक ट्यूटोरियल के लिए, rmauro.dev पर जाएं। हैप्पी कोडिंग!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3