map
सूचियों पर और ऐतिहासिक कारणों से कार्यों को सरल बनाने के लिए मौजूद है (देखें कि हाॅम्सेप में मैप का क्या मतलब है, जब फैप है )।
आप पूछ सकते हैं कि हमें एक अलग मानचित्र फ़ंक्शन की आवश्यकता क्यों है। केवल वर्तमान सूची-केवल मानचित्र फ़ंक्शन के साथ दूर क्यों न करें, और इसके बजाय मैप के लिए नाम बदलें? खैर, यह एक अच्छा सवाल है। सामान्य तर्क यह है कि कोई व्यक्ति केवल हास्केल सीख रहा है, जब नक्शे का गलत तरीके से उपयोग कर रहा है, तो इससे फ़नट्रैक्टरों की तुलना में सूचियों के बारे में एक त्रुटि दिखाई देगी।
- टाइपक्लासोपेडिया , पृष्ठ 20
fmap
और liftM
मौजूद है क्योंकि हास्केल में मोनडर्स स्वचालित रूप से फंक्शनल नहीं थे:
तथ्य यह है कि हमारे पास फैप और लिफ्टम दोनों हैं, इस तथ्य का एक दुर्भाग्यपूर्ण परिणाम है कि मोनाड प्रकार वर्ग को फ़ंक्टर उदाहरण की आवश्यकता नहीं है, भले ही गणितीय रूप से बोलते हुए, हर मोनाड एक फ़नकार है। हालांकि, किसी भी प्रकार के लिए फन और लिफ्टम अनिवार्य रूप से विनिमेय हैं, क्योंकि यह किसी भी प्रकार के लिए एक बग (तकनीकी अर्थ में सामाजिक रूप से) एक प्रकार का मौन का एक उदाहरण है, जिसमें फन्नेरे का उदाहरण भी नहीं है।
- टाइपक्लासोपेडिया , पृष्ठ 33
संपादित करें: अगस्टस का इतिहास map
और fmap
:
वास्तव में ऐसा नहीं है। क्या हुआ था कि हास्केल 1.3 में फंक्टर को कवर करने के लिए मानचित्र के प्रकार को सामान्यीकृत किया गया था। यानी, हास्केल में 1.3 fmap को मैप कहा जाता था। यह परिवर्तन तब हास्केल 1.4 में वापस कर दिया गया था और फैंप पेश किया गया था। इस परिवर्तन का कारण शैक्षणिक था; जब हास्केल को शुरुआती लोगों को सिखाना बहुत सामान्य प्रकार के नक्शे में त्रुटि संदेशों को समझने में अधिक कठिन बना। मेरी राय में यह समस्या को हल करने का सही तरीका नहीं था।
- फासप होने पर हास्केल में नक्शे का क्या मतलब है?