स्काला के ऐतिहासिक उद्भव


14

स्काला को मेरे कई सहयोगियों द्वारा सेट की गई समृद्ध विशेषता के साथ जटिल कहा गया है और कुछ ने उन सभी नई विशेषताओं को भी दोषी ठहराया है। जबकि अधिकांश प्रोग्रामर ओओ-सुविधाओं से अवगत हैं, और कम से कम सभ्य लोगों को कार्यात्मक प्रोग्रामिंग के बारे में भी पता है, स्कैला में विशेष रूप से एक विशेषता है जिसके लिए मुझे इसकी ऐतिहासिक उत्पत्ति के बारे में पता नहीं है।

यह देखते हुए कि हमारे पेशे का एक प्रमुख मंत्र पहिया को सुदृढ़ नहीं करना है, मुझे भरोसा है कि स्काला के पास पहले से कोई वास्तविक अनसुनी विशेषताएं नहीं हैं, लेकिन मैं आवश्यक होने पर इसे ठीक करने के लिए खड़ा हूं।

वास्तविक प्रश्न पर जाने के लिए, जबकि मुझे स्काला की अधिकांश विशेषताओं की उत्पत्ति के बारे में पता है, मैंने पहले कभी भी इसकी implicitघोषणाओं की तरह कुछ नहीं देखा है । क्या अन्य (पुरानी) भाषाएँ हैं जो इस सुविधा को प्रदान करती हैं?

क्या यह निहितार्थ के विभिन्न मामलों को अलग करने के लिए समझ में आता है (जैसा कि वे अलग-अलग स्रोतों से उत्पन्न हो सकते हैं), अर्थात् रूपांतरण और निहित मापदंडों को प्रभावित करते हैं?


शायद एक डुप्लिकेट ?: stackoverflow.com/questions/3069432/…
gerferra

@gerferra एक सटीक डुप्लिकेट नहीं है, और एक क्रॉस साइट डुप्लिकेट की धारणा नहीं है। यदि आप चाहते हैं, तो आप एसओ प्रश्न का संदर्भ देते हुए उत्तर लिख सकते हैं और यह उत्तर और उनके संदर्भ हैं, यह पूरी तरह से स्वीकार्य है।
यानि

जवाबों:


9

मैं उस दूसरे सवाल पर ब्रायन के जवाब से असहमत हूं।

जहां तक ​​मुझे पता है, किसी भी अन्य भाषा पर कोई अंतर्निहित अवधारणा नहीं है । स्काला के लिए परिवर्तन इतिहास का तात्पर्य यह है कि ध्वनिकी दृश्य सीमा का एक सामान्यीकरण था, और एक दृश्य बाध्य है, अपने आप में, स्वचालित प्रकार के रूपांतरण का एक सामान्यीकरण, जो वास्तव में बहुत आम है।

इंप्लिसिट्स ने तब प्रकार की कक्षाएं सक्षम कीं, लेकिन मैं बहुत ही आश्चर्यचकित होता अगर वह मूल इरादा था।

संपादित करें

स्केल 2.0 के लिए जारी किए गए नोट्स (2006) कहते हैं:

स्कैला 1.0 में दृश्य अंतर्निहित मापदंडों की अधिक सामान्य अवधारणा द्वारा प्रतिस्थापित किया गया है

इसका मतलब यह नहीं है कि विचारों को बदलने के लक्ष्य के साथ निहित मापदंडों को पेश किया गया था।

हालाँकि, जब एक बार अवधारणा कई लोगों को बदल सकती है तो ओडस्की इसे स्पष्ट रूप से पसंद करते हैं। उस अर्थ में, यह अच्छी तरह से मामला हो सकता है कि ओडस्की प्रकार की कक्षाएं चाहते थे, लेकिन विशेष रूप से इसे संभालने के लिए एक तंत्र को पेश नहीं करना चाहते थे, और इसलिए, कुछ और के साथ आया था कि उसे एक अवधारणा (दृश्य) को हटा दें और इसे प्रतिस्थापित करें अधिक सामान्य अवधारणा के साथ जो विचार और प्रकार दोनों वर्गों को संभालती है।

यदि किसी की दिलचस्पी है, तो स्टैक ओवरफ्लो में ब्रायन द्वारा वापस भेजे गए पुअर मैन टाइप टाइप्स को 2006 में भी दिनांकित किया गया है। स्पष्ट रूप से, ओडस्की को उनके द्वारा पेश किए जाने पर इंसपीट और टाइप कक्षाओं के बीच लिंक के बारे में पता था।

फिर भी, मैं अपने दावे पर कायम हूं। :-)


नॉर्मन रैमसे द्वारा प्रतिक्रिया के बारे में क्या? stackoverflow.com/a/3071461/63489 । यह हास्केल में निहित रूपांतरणों के पिछले कार्यान्वयन को संदर्भित करता है
gerferra

@gerferra उचित लगता है - ध्यान दें कि उस कागज में ओडस्की को संदर्भित किया गया है। तंत्र अलग है, लेकिन यह अच्छी तरह से गेंद रोलिंग हो सकता है। ओडस्की के संदर्भित पेपर में टाइप कक्षाओं पर चर्चा की गई है, और 2006 में इंट्रैक्ट्स पेश किए गए थे, ब्रायन द्वारा उद्धृत "पुअर मैन टाइप्स क्लास" प्रस्तुति की तारीख - स्पष्ट रूप से, एक लिंक है। फिर भी, स्कैला 2.0 (2006) के लिए जारी किए गए नोट्स कहते हैं, "दृश्य 1.0 स्कला 1.0 में निहित मापदंडों की अधिक सामान्य अवधारणा द्वारा प्रतिस्थापित किया गया है" । ओडस्की के बारे में मुझे क्या पता है, एक तंत्र जो कई समस्याओं को हल करता है, उसके लिए बहुत आकर्षण होगा।
डैनियल सी। सोबरल

काफी उचित :-)
gerferra

4

Implicit scala में दो अलग चीजों का मतलब है

  1. निहित पैरामीटर। ये हास्केल, और शायद अन्य भाषाओं में पहले दिखाई दिए। सहायक साक्ष्य: 2000 और GHC 5.04.1 प्रलेखन (सितंबर -२००२, इससे पहले कि एक स्काला था )
  2. निहितार्थ रूपांतरण। मुझे पता नहीं है कि ये करने के लिए पहली भाषा है, लेकिन वे C # 1.0 में थे ( implictकीवर्ड का उपयोग करके ) जो लगभग एक साल तक स्काला के पहले संस्करण को पूर्व-दिनांकित करता है।

+1, मुझे नहीं पता कि अंतर्निहित रूपांतरण C # में उपलब्ध हैं। सूचक के लिए धन्यवाद।
फ्रैंक

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.