सोचने के लिए के बारे में यह है कि subtyping दोनों सार्वभौमिक और अस्तित्व बहुरूपता का एक कमजोर रूप प्रदान करता है गेब्रियल के जवाब एक ही रास्ता है की मदद के लिए। जब पैरामीट्रिक बहुरूपता के दोनों दिशाएं उपलब्ध हैं, तो सबटाइपिंग की अभिव्यक्ति अधिकतर कम हो जाती है (विशेष रूप से जब कोई गहराई उप-प्रकार नहीं होती है)। लेकिन ओकंपल में यह मामला नहीं है।
ओकैमल सार्वभौमिक पहलू को वास्तविक सार्वभौमिक बहुरूपता द्वारा प्रतिस्थापित करता है, लेकिन यह आपको अस्तित्वत्मक मात्रा का एक रूप देने के लिए उप प्रकार रखता है जो अन्यथा नहीं है। उदाहरण के लिए जरूरी है विषम संग्रह, जैसे <a: int> list
जिसमें आप मनमानी वस्तुओं को स्टोर करने में सक्षम होना चाहते हैं, कम से कम a
सही प्रकार की विधि है।
मैं भी आगे जाकर कहते हैं कि, जबकि यह आम तौर पर OCaml दुनिया में subtyping के रूप में समझाया गया है, तो आप वास्तव में बंद पंक्तियों व्याख्या की जा सकती रूप existentially एक (अज्ञात) पूंछ से अधिक मात्रा निर्धारित होगा। :>
के माध्यम से जबरदस्त अस्तित्व में परिचय होगा, इस प्रकार परमेट्रिक बहुरूपता की दुनिया के प्रति अधिक वफादार रहना होगा जिस पर पंक्तियां बनाई गई हैं। (बेशक, इस व्याख्या के तहत, #
अंतर्निहित अस्तित्वहीन उन्मूलन करेगा।) अगर मैं ओकैम-जैसी प्रणाली को स्क्रैच से डिजाइन करना चाहता था, तो शायद मैं इसे इस तरह मॉडल करने की कोशिश करता हूं।
स्रोत
2013-05-27 15:33:29
धन्यवाद! पंक्ति परिवर्तनीय पर सार्वभौमिक/अस्तित्वत्मक मात्रा के रूप में सिक्योरिंग दबावों के बारे में कभी सोचा नहीं ... –
वास्तव में, हमारे पास ओकैमल में अस्तित्व में मात्रा का मतलब है; पॉलिमॉर्फिक रिकॉर्ड फ़ील्ड में प्रथम श्रेणी के सार्वभौमिक क्वांटिफायर की डबल परत के साथ सामान्य या (भारी) एन्कोडिंग के माध्यम से, या अब प्रथम श्रेणी के रिकॉर्ड या जीएडीटी के माध्यम से। यह सही है कि उनके पुराने उद्देश्य एमएल काम में, जेरोम वाउलॉन और डिडिएर रेमी ने इस तरह से बंद प्रकारों को उचित ठहराया; लेकिन ध्यान दें कि हमारे पास मौजूद अन्य अस्तित्वों के साथ उपयोग अलग है: बंद प्रकारों के साथ, अस्तित्व के पैकिंग और अनपॅकिंग दोनों अंतर्निहित हैं (पैकिंग (अनुमानित) तत्कालता के माध्यम से है), अन्य अस्तित्व अधिक स्पष्ट हैं। – gasche