मैं हास्केल पर एक व्याख्यान टिप्पणी पढ़ने जब मैं इस पैरा (http://www.seas.upenn.edu/~cis194/lectures/02-lists.html) में आए किया गया था:हास्केल में मिरर टाइप करें?
यह "देखभाल नहीं" है क्या "पैरामीट्रिक" पैरामीट्रिक पोलिमोर्फ़िज्मके साधन में। सभी हास्केल फ़ंक्शंस अपने प्रकार के पैरामीटर में पैरामीट्रिक होना चाहिए; इन पैरामीटर के विकल्पों के आधार पर कार्यों को परवाह नहीं करना चाहिए या निर्णय नहीं लेना चाहिए। एक कार्य एक चीज नहीं कर सकता है जब एक इंट है और बूल होने पर एक अलग बात है। हास्केल बस इस तरह के एक ऑपरेशन लिखने के लिए कोई सुविधा प्रदान नहीं करता है। लैंगेज की इस संपत्ति को पैरामीट्रिक कहा जाता है।
पैरामीट्रिकिटी के कई गहरे और गहरे परिणाम हैं। एक परिणाम टाइप एरर नामक कुछ है। चूंकि चल रहे हास्केल प्रोग्राम प्रकार की जानकारी के आधार पर कभी निर्णय नहीं ले सकते हैं, इसलिए सभी प्रकार की जानकारी संकलन के दौरान छोड़ी जा सकती है। हास्केल कोड लिखते समय कितने महत्वपूर्ण प्रकार हैं, बावजूद हास्केल कोड चलाते समय वे पूरी तरह से अप्रासंगिक हैं। पाइथन जैसे अन्य भाषाओं की तुलना में यह संपत्ति हास्केल को एक बड़ी गति वृद्धि प्रदान करती है, जिसे रनटाइम पर आसपास के प्रकार रखने की आवश्यकता होती है। (प्रकार विलोपन केवल बात यह है कि हास्केल तेजी से बनाता है नहीं है, लेकिन कभी कभी हास्केल अजगर की तुलना में तेजी 20x पर क्लॉक किया गया है।)
क्या मुझे समझ नहीं आता है कि कैसे कर रहे हैं "सभी हास्केल कार्यों" पैरामीट्रिक? हास्केल में स्पष्ट/स्थैतिक प्रकार नहीं हैं? इसके अलावा मैं वास्तव में समझ नहीं पा रहा हूं कि कैसे टाइप एरर
संकलित समय
रनटाइम में सुधार करता है?
क्षमा करें अगर ये प्रश्न वास्तव में बुनियादी हैं, तो मैं हास्केल के लिए नया हूं।
संपादित करें:
एक और सवाल: क्यों लेखक कहता है कि "कैसे महत्वपूर्ण प्रकार कर रहे हैं जब हास्केल कोड लिखने के बावजूद, वे पूरी तरह से अप्रासंगिक हैं जब हास्केल कोड चलाने"?
उद्धरण कभी दावा नहीं करता है कि "टाइप एरर संकलन समय में सुधार करता है", केवल यह है कि यह _runtime_ में सुधार करने में मदद करता है। – chi
फ़ंक्शंस पैरामीट्रिक हैं यदि आपके पास टाइप पैरामीटर 'ए' है, तो आप कभी भी' ए 'का निरीक्षण नहीं कर सकते हैं और रनटाइम पर इसके प्रकार के आधार पर निर्णय ले सकते हैं। तो आप निश्चित हो सकते हैं कि 'मानचित्र' जैसे फ़ंक्शन सभी इनपुट सूचियों के लिए समान रूप से व्यवहार करते हैं, इसलिए आपको रनटाइम पर सूची तत्व प्रकार को बनाए रखने की आवश्यकता नहीं है। इसे सी # जैसी भाषा से तुलना करें जो आपको वास्तविक सूची पैरामीटर प्रकार को प्रतिबिंब के माध्यम से रनटाइम पर प्राप्त करने की अनुमति देता है। – Lee