यह थोड़ा व्यक्तिपरक है, लेकिन मैं एक स्पष्ट समझ प्राप्त करने की उम्मीद कर रहा हूं कि कौन से कारक एक ऑपरेटर को स्पष्ट रूप से उपयोग करने के लिए स्पष्ट कर सकते हैं। मैं हाल ही में भाषा के डिजाइन पर विचार कर रहा हूं, और एक मुद्दा जो मैं हमेशा सर्कल करता हूं, वह यह है कि भाषा में कुछ महत्वपूर्ण ऑपरेशन को एक ऑपरेटर कैसे बनाया जाए, और किसी कीवर्ड या फ़ंक्शन का उपयोग कब किया जाए।
हास्केल इसके लिए कुछ हद तक कुख्यात है, क्योंकि कस्टम ऑपरेटरों को बनाना आसान है और अक्सर एक नया डेटा प्रकार उस पर उपयोग के लिए कई ऑपरेटरों के साथ पैक किया जाएगा। उदाहरण के लिए, पारसेक पुस्तकालय, पार्सरों को एक साथ मिलाने के लिए ऑपरेटरों के एक टन के साथ आता है, जैसे रत्न >.
और .>
मैं यह भी याद नहीं कर सकता कि वे अभी क्या मतलब है, लेकिन मुझे याद है कि जब मैंने याद किया था, तो उनके साथ काम करना बहुत आसान था वे वास्तव में मतलब है। क्या कोई फ़ंक्शन कॉल जैसे कि leftCompose(parser1, parser2)
बेहतर होगा? निश्चित रूप से अधिक क्रिया, लेकिन कुछ तरीकों से स्पष्ट।
सी-लाइक भाषाओं में ऑपरेटर ओवरलोड एक समान मुद्दा है, लेकिन +
असामान्य नए अर्थों के साथ परिचित ऑपरेटरों के अर्थ को ओवरलोड करने की अतिरिक्त समस्या से सामना करना पड़ता है ।
किसी भी नई भाषा में, यह काफी कठिन मुद्दे की तरह प्रतीत होगा। F # में, उदाहरण के लिए, C # स्टाइल कास्ट सिंटैक्स या वर्बोज़ VB स्टाइल के बजाय कास्टिंग एक गणितीय व्युत्पन्न टाइप-कास्टिंग ऑपरेटर का उपयोग करता है। C #: (int32) x
VB: CType(x, int32)
F #:x :> int32
सिद्धांत रूप में एक नई भाषा में अधिकांश अंतर्निहित कार्यक्षमता के लिए ऑपरेटर हो सकते हैं। इसके बजाय def
या dec
या var
चर घोषणा, क्यों नहीं के लिए ! name
या @ name
या कुछ इसी तरह। यह निश्चित रूप से बाध्यकारी होने के बाद घोषणा को छोटा करता है: या अधिकांश कोड के @x := 5
बजाय बहुत अधिक चर परिभाषाओं की आवश्यकता होती है, तो क्यों नहीं?declare x = 5
let x = 5
एक ऑपरेटर कब स्पष्ट और उपयोगी होता है, और कब अस्पष्ट होता है?
+
स्ट्रिंग संयोजन के लिए या <<
धाराओं के लिए) में पुन: उपयोग करने के लिए मजबूर होते हैं । हास्केल के साथ, दूसरी ओर, एक ऑपरेटर या तो एक कस्टम नाम के साथ एक फ़ंक्शन है (जो कि, अतिभारित नहीं है) या एक प्रकार की कक्षा का हिस्सा है जिसका अर्थ है कि जब यह बहुरूपी है, तो यह हर प्रकार के लिए एक ही तार्किक बात करता है , और यहां तक कि एक ही प्रकार के हस्ताक्षर हैं। तो >>
है >>
कि हर प्रकार के लिए और कभी नहीं एक सा बदलाव होने जा रहा है।