पर किया जा रहा है और अंग्रेजी भाषा के लिए सबसे अच्छा है क्योंकि यह है करने के लिए इस्तेमाल कर रहा हूँ अब तक, लाइन में केवल भाषा जहां शब्दों को उसी क्रम में बोली जाती है, मैं उन्हें सोचता हूं। एक आश्चर्य है कि क्यों कोई भी गलत क्रम में शब्दों के साथ फ्रांसीसी बोलता है!
मुझे लगता है कि आप इस पैटर्न का उपयोग करने वाली कई पुरानी भाषाओं के अस्तित्व को अनदेखा करते हैं। विजुअल बेसिक (1 99 0 के मध्य) तुरंत दिमाग में आता है।
λx:S.λy:T:S-->T-->S
पूरे एमएल परिवार। मैं जा सकता थाबहुत सारी पुरानी भाषाएं हैं जो सही सम्मेलन के प्रकारों का उपयोग करती हैं।
लेकिन हम 1 9 40 के दशक से कहीं अधिक पुराने हो सकते हैं। जब आप गणित f : Q --> R
में कहते हैं, तो आप बाईं ओर फ़ंक्शन का नाम डाल रहे हैं - प्रकार - क्यू से आर का नक्शा - दाईं ओर। जब आप x∈R कहते हैं कि x वास्तविक है, तो आप सही प्रकार को टाइप कर रहे हैं। शाब्दिक सदियों द्वारा बाएं में बाईं ओर टाइप करें "दाईं ओर टाइप करें" टाइप करें। यह कुछ भी नया नहीं है!
वास्तव में वाक्य रचना "बाईं तरफ के प्रकार के" अजीब एक है! यह आपके लिए स्वाभाविक प्रतीत होता है क्योंकि आपने ऐसी भाषा का उपयोग किया है जो आपके प्रारंभिक वर्षों में इस सम्मेलन का उपयोग करता है।
सही वाक्य रचना पर प्रकार कई कारणों से, ज्यादा बेहतर है। बस कुछ:
var x : int = 1;
function y(z : int) : string { ... }
पर जोर देती है कि एक्स एक चर और y एक समारोह है। यदि प्रकार बाईं ओर आता है और आप int y
देखते हैं तो आप नहीं जानते कि यह बाद में एक फ़ंक्शन या चर है। यह मनुष्यों के पढ़ने के लिए कार्यक्रम कठिन बनाता है, जो काफी खराब है। एक कंपाइलर डेवलपर के रूप में, मैं आपको बताता हूं कि यह काफी असुविधाजनक है कि प्रकार सी # में बाईं ओर आता है। (मैं सी # सिंटैक्स प्रकारों की स्थिति से कैसे निपटता हूं, इस बारे में कई असंगतताओं को इंगित कर सकता हूं।)
एक और कारण: "दाईं ओर टाइप करें" वाक्यविन्यास में आप प्रकार वैकल्पिक बना सकते हैं। आप
var x : int = 1;
है तो आप आसानी से कह सकते हैं "ठीक है, हम पूर्णांक अनुमान लगा सकते हैं, और इसलिए इसे समाप्त"
var x = 1;
लेकिन अगर पूर्णांक बाईं तरफ है, तो आप क्या करते हैं ?
इसे परिवर्तित करना: आप टाइपस्क्रिप्ट का उल्लेख करते हैं। टाइपस्क्रिप्ट धीरे-धीरे टाइप की गई जावास्क्रिप्ट है। जावास्क्रिप्ट में सम्मेलन पहले से ही है
var x = 1;
function f(y) { }
यह देखते हुए कि, स्पष्ट रूप से यह सही पर वैकल्पिक प्रकार के तत्वों को पेश करने की तुलना में यह "var बनाने के लिए हो सकता है, एक पूरे के रूप दोनों मौजूदा कोड, और भाषा को संशोधित करने के लिए आसान है "और" फ़ंक्शन "कीवर्ड एक प्रकार से प्रतिस्थापित होते हैं।
भी स्थिति पर विचार करें। जब आप कहते हैं:
int x = 1;
तो दो चीजें हैं जो अनुरूप होना चाहिए - प्रकार और प्रारंभकर्ता - के रूप में दूर के रूप में वे संभवतः कर सकते हैं। var x : int = 1;
के साथ वे एक तरफ हैं। और
int f() {
...
...
return 123;
}
हमें क्या मिला है? वापसी जितनी जल्दी संभव हो सके है, तो फ़ंक्शन घोषणा जितनी दूर संभव हो सके के प्रकार को स्थानांतरित करती है? "सही वाक्यविन्यास के प्रकार के साथ हमारे पास यह अच्छा प्रवाह है:
function f(x : string) : int
{ ... ... ... return 123; }
फ़ंक्शन कॉल में क्या होता है?घोषणा का प्रवाह अब नियंत्रण के प्रवाह के समान है: बाईं ओर की चीजें - औपचारिक मानकों की शुरुआत - पहले होता है, और दाईं ओर की चीजें - वापसी मूल्य का उत्पादन - आखिरी होता है।
मैं कुछ अतिरिक्त लंबाई पर जा सकता हूं कि सी शैली पूरी तरह से पीछे की ओर कैसे जाती है, लेकिन देर हो चुकी है। संक्षेप में: सबसे पहले, दाईं ओर टाइप करें लगभग हर संभव तरीके से बेहतर है, और दूसरा, यह बहुत पुराना है। इस सम्मेलन का उपयोग करने वाली नई भाषाएं परंपरागत अभ्यास के अनुरूप हैं।
देखें कि यूएमएल में किस तरह के प्रकार हैं, जब सी ++ प्रभावशाली यूएमएल इस अलग क्रम में प्रकार डाल रहा था। –
हम्म ... उन प्रश्नों के उत्तर में से कोई भी करी हॉवर्ड आइसोमोर्फिज्म का उल्लेख नहीं करता है (जहां 'ए: ए' का मतलब होगा * ए प्रस्ताव का एक सबूत है * या * ए टाइप ए * है)। अर्थात। इस अभ्यास के लिए सिद्धांत टाइप करने वाले वास्तविक कारण होंगे। – JGreenwell