वहाँ कोई अंतर नहीं है, वास्तव में map
rb_ary_collect
और enum_collect
के रूप में सी में कार्यान्वित किया जाता है (उदाहरण के लिए। वहाँ एक सरणी पर और किसी भी अन्य enum पर map
बीच एक अंतर है, लेकिन map
और collect
के बीच कोई अंतर) ।
क्यों दोनों map
करते हैं और collect
रूबी में मौजूद हैं?map
फ़ंक्शन में विभिन्न भाषाओं में कई नामकरण सम्मेलन हैं। Wikipedia provides an overview:
नक्शा समारोह कार्यात्मक प्रोग्रामिंग भाषाओं में जन्म लिया है लेकिन आज समर्थित (या में परिभाषित किया जा सकता है) कई प्रक्रियात्मक, वस्तु उन्मुख, और बहु-प्रतिमान भाषाओं में भी है: सी ++ के मानक टेम्पलेट लायब्रेरी में, यह कहा जाता है transform
, सी # (3.0) की LINQ लाइब्रेरी में, इसे Select
नामक एक विस्तार विधि के रूप में प्रदान किया जाता है। नक्शा भी पर्ल, पायथन और रूबी जैसे उच्च स्तरीय भाषाओं में अक्सर इस्तेमाल किया जाने वाला ऑपरेशन होता है; इन तीनों भाषाओं में ऑपरेशन को map
कहा जाता है। ए collect
नक्शा के लिए उपनाम रूबी (स्मॉलटाक से) [जोर मेरा] में भी प्रदान किया जाता है। सामान्य लिस्प मानचित्र के समान कार्यों का एक परिवार प्रदान करता है; यहां वर्णित व्यवहार से संबंधित एक को mapcar
कहा जाता है (-कर कार ऑपरेशन का उपयोग करके पहुंच का संकेत देता है)।
रूबी छोटे घर की दुनिया से प्रोग्रामर के लिए घर पर अधिक महसूस करने के लिए एक उपनाम प्रदान करता है।
क्यों सरणियों और enums के लिए एक अलग कार्यान्वयन है? एक enum एक सामान्यीकृत पुनरावृत्ति संरचना है, जिसका अर्थ है कि रूबी भविष्यवाणी कर सकता है कि अगला तत्व क्या हो सकता है (आप अनंत enums को परिभाषित कर सकते हैं, उदाहरण के लिए Prime देखें)। इसलिए इसे प्रत्येक क्रमिक तत्व प्राप्त करने के लिए एक फ़ंक्शन को कॉल करना होगा (आमतौर पर यह each
विधि होगी)।
सरणी सबसे आम संग्रह कर रहे हैं तो यह उनके प्रदर्शन को अनुकूलित करने के लिए उचित है। चूंकि रूबी इस बारे में बहुत कुछ जानता है कि एरे कैसे काम करते हैं, इसे each
पर कॉल करने की आवश्यकता नहीं है, लेकिन केवल सरल pointer manipulation का उपयोग कर सकते हैं जो काफी तेज़ है।
इसी तरह के अनुकूलन zip
या count
जैसे कई ऐरे विधियों के लिए मौजूद हैं।
स्रोत
2011-03-10 02:24:34
'नक्शा' को [कोड गोल्फ] (http://codegolf.stackexchange.com/questions) पर प्राथमिकता दी जाती है। –
कोडगॉल्फ में 'मैप' क्यों पसंद किया जाता है, इसकी व्याख्या के रूप में, जो सभी के लिए स्पष्ट नहीं हो सकता है: यह केवल इसलिए है क्योंकि' संग्रह ''नक्शा' से चार वर्ण लंबा है, लेकिन कार्यक्षमता में समान है। –