स्कालाज राज्यव्यापी गणनाओं पर एक अच्छा अमूर्तता प्रदान करता है: एसटी मोनड।स्कैला में एसटी मोनड का उपयोग कब करें?
एसटी मोनैड एक कार्यात्मक रूप में एक साइड-इफेक्टिंग गणना को कैप्चर करने की अनुमति देता है।
हास्केल में, मुझे लगता है कि, इस तरह के एक मोनैड का उपयोग करना कुछ अनिवार्य एल्गोरिदम कुशलतापूर्वक लागू करने का एकमात्र तरीका है।
लेकिन स्कैला में मैं आवश्यक होने पर बस परिवर्तनीय डेटा-संरचनाओं का उपयोग कर सकता हूं।
मुझे जो पता चला वह है कि स्कालाज़ से कार्यात्मक अवधारणाओं का उपयोग एक कम्प्यूटेशनल ओवरहेड के साथ आता है। उदाहरण के लिए देखें this question। इस प्रकार वांछित लक्ष्य दक्षता में लाभ है, तो एसटी monad का उपयोग कर एक कार्यात्मक कार्यान्वयन से कार्यात्मक कार्यान्वयन के लिए स्विच करने के लिए उचित प्रतीत नहीं होता है।
क्या मैं पूछ रहा हूँ इस प्रकार है:
- जब यह अनुसूचित जनजाति इकाई का उपयोग करने के लिए उचित है?
- आपने किस परिस्थितियों में इसका उपयोग किया था और यह एक अच्छा विकल्प प्रतीत होता है?
"हास्केल में, मुझे लगता है कि, इस तरह के एक मोनैड का उपयोग करना कुछ अनिवार्य एल्गोरिदम कुशलतापूर्वक लागू करने का एकमात्र तरीका है।" - यह गलत है। राज्य मोनड एक सरल, पूरी तरह कार्यात्मक मोनैड है, लेकिन स्मृति प्रभावों के लिए मूल हार्डवेयर समर्थन के लिए आप एसटी मोनड का उपयोग करते हैं। मनमाना दुष्प्रभावों के लिए, आईओ monad। शायद आप स्कैला में एसटी मोनड की तलाश में हैं? –
@ डॉनस्टवार्ट आप सही हैं। मैं हमेशा नामकरण उलझन में पाया। – ziggystar