2010-09-02 10 views
9

क्या किसी को कुछ पृष्ठभूमि पता है, क्यों स्कैला और सी # एकल तीर (->) के बजाय लैम्बडास के लिए डबल तीर (=>) का उपयोग करते हैं?स्कैला और सी # लैम्बडास के लिए डबल तीर क्यों?

एकल तीर साहित्य में आम है, हास्केल, O'Caml, एफ #, ग्रूवी आदि में प्रयोग किया जाता है और IMO यह भी लग रहा है अच्छे :)

+6

मानक एमएल भी '=>' का उपयोग करता है। –

+6

शायद (सी # में कम से कम) सी ++ पॉइंटर सदस्य आमंत्रण ऑपरेटर के साथ एक ही प्रतीक के साथ भ्रम से बचने के लिए। –

उत्तर

15

पिज्जा, एक तरह से स्काला के लिए एक पूर्ववर्ती था जो था -> समारोह प्रकार में। मुझे याद है कि सी ++ प्रोग्रामर प्रतीक के इस विकल्प से परेशान थे। स्कैला ने => AFAIRC क्यों चुना है इसका यही कारण है। ऐसा लगता है कि सी # लोग एक ही तर्क के माध्यम से चला गया।

+2

खैर, सी # लोग '->' तीर का उपयोग नहीं कर सके क्योंकि इसका मतलब सी # में एक ही चीज है जो यह सी ++ में करता है। चूंकि पिज्जा और स्काला में पॉइंटर ड्रेफरेंस ऑपरेटर नहीं है, इसलिए यह बिल्कुल वही तर्क नहीं है। – Gabe

+1

यह कम से कम आधे प्रश्न का सही उत्तर होना चाहिए। – ziggystar

21

सी # में, शायद क्योंकि -> ऑपरेटर पहले से ही प्रयोग किया जाता है असुरक्षित कोड (LINK)

+0

यह पूरी तरह से समझ में आता है! – Aivar

+0

मुझे पूरा यकीन है कि स्कैला के डिजाइन में अन्य कार्यात्मक भाषाओं के प्रभाव का एक बड़ा हिस्सा था। सी # निश्चित रूप से कारण नहीं है, तथ्य यह है कि सी # में => वाक्यविन्यास भी है जैसा कि आसानी से एक ही तर्क हो सकता है। – gpampara

10

स्कैला में, "नक्शा तीर" भी है जो किसी आइटम a से मैपिंग को b पर इंगित करता है। लैम्बडास के लिए जैसी चीज़ों के लिए -> को मुक्त करता है, और जैसा कि अन्य ने => को इंगित किया है सी # और स्कैला के लिए अद्वितीय नहीं है।

+6

बेशक, आप यह भी तर्क दे सकते हैं कि अगर उन्होंने पर्ल से '=>' नक्शा तीर का उपयोग किया था, जो लैम्बडास के लिए '->' तीर को मुक्त कर देता। – Gabe

संबंधित मुद्दे