हास्केल सीखने की कोशिश करते समय, उत्पन्न होने वाली कठिनाइयों में से एक क्षमता है जब कुछ को कंपाइलर से विशेष जादू की आवश्यकता होती है। दिमाग में आने वाला एक उदाहरण seq
फ़ंक्शन है जिसे परिभाषित नहीं किया जा सकता है यानी आप seq2
फ़ंक्शन को बिल्कुल निर्मित seq
के रूप में व्यवहार नहीं कर सकते हैं। नतीजतन, किसी को seq
के बारे में पढ़ाने के दौरान, आपको यह उल्लेख करना होगा कि seq
विशेष है क्योंकि यह कंपाइलर के लिए एक विशेष प्रतीक है।हास्केल कंपाइलर जादू: कंपाइलर से विशेष उपचार की आवश्यकता क्या है?
एक और उदाहरण do
-नोटेशन होगा जो केवल Monad
वर्ग के उदाहरणों के साथ काम करता है।
कभी-कभी, यह हमेशा स्पष्ट नहीं होता है। उदाहरण के लिए, निरंतरताएं। क्या संकलक Control.Monad.Cont
के बारे में जानता है या क्या यह सादा पुराना हैस्केल है कि आप स्वयं का आविष्कार कर सकते थे? इस मामले में, मुझे लगता है कि संकलक से कुछ विशेष की आवश्यकता नहीं है, भले ही निरंतरता एक बहुत ही अजीब प्रकार का जानवर हो।
भाषा एक्सटेंशन अलग-अलग सेट किए गए हैं, अन्य कंपाइलर जादू हास्केल शिक्षार्थियों को किस बारे में पता होना चाहिए?
स्पष्ट बताते हुए: "जादू" की किसी भी उचित परिभाषा के लिए कुछ भी 'आईओ' "जादू" के अंतर्गत आता है: https://www.reddit.com/r/haskell/comments/450baq/is_it_just_me_or_does_ios_definition_give_you_the/। इसके अलावा 'एसटी 'मोनैड, जो शायद और भी जादू है। – PyRulez
एसटीएम के बारे में क्या? और धारा संलयन? – gawi
हाँ, वे भी, लेकिन एसटीएम को आईओ से अपना जादू मिल जाता है, और भाप संलयन नियमों को फिर से लिखता है, जो स्वयं ही जादू है। – PyRulez