मैं पहचानकर्ताओं में यूनिकोड वर्ण (गैर-लैटिन) के साथ हास्केल में कुछ शैक्षिक कोड लिखना चाहता था। (ताकि पहचानकर्ता अंग्रेजी के अलावा किसी अन्य प्राकृतिक भाषा के वक्ताओं के लिए अच्छा और प्राकृतिक दिखें जो लैटिन वर्णों का उपयोग अपने लेखन में नहीं कर रहा है।) इसलिए, मैंने उचित हास्केल कार्यान्वयन खोजने के लिए तैयार किया जो इसकी अनुमति देगा।यह कहां निर्दिष्ट किया गया है कि हास्केल कार्यान्वयन में यूनिकोड पहचानकर्ताओं को अनुमति दी जानी चाहिए?
लेकिन यह विशेषता भाषा विनिर्देश में निर्दिष्ट कहां है? एक अनुरूप कार्यान्वयन की तलाश करते समय मैं इस सुविधा का उल्लेख कैसे करूं? (और जो हास्केल अनुकरण वास्तव में यूनिकोड पहचानकर्ताओं का समर्थन करने के लिए जाने जाते हैं?)
यह पता चला कि एक हास्केल कार्यान्वयन ने यूनिकोड पहचानकर्ताओं के साथ अपना कोड स्वीकार कर लिया है, जबकि दूसरा इसे स्वीकार करने में विफल रहा है। मुझे यह अच्छा लगेगा कि मेरे कोड की इस आवश्यकता को औपचारिक रूप से एक भाषा सुविधा स्विच के रूप में औपचारिक बनाने का कोई तरीका था, ताकि यदि मैं या कोई और मेरा कोड चलाने की कोशिश करता है, तो यह तुरंत स्पष्ट होगा कि उसका कार्यान्वयन गायब है या नहीं आवश्यक सुविधा और इसलिए उसे किसी और की तलाश करनी चाहिए। (इस सुविधा के लिए एक विकी पेज भी हो सकता है - "यूनिकोड आइडेंटिफायर", जो सूचीबद्ध करेगा कि कौन से मौजूदा कार्यान्वयन इसका समर्थन करते हैं, ताकि कोई यह जान सके कि किसी को इसकी आवश्यकता है या नहीं।)
(बीटीडब्ल्यू, मैंने इस प्रश्न पर एक "वाक्यविन्यास" टैग रखा है, लेकिन मुझे वास्तव में यह भाषा के सिंटैक्स की तुलना में कम स्तर के लेक्सिंग के स्तर का मुद्दा माना जाता है। क्या यहां एक टेक्स्ट लेक्सिंग स्तर की सुविधाओं के लिए एक टैग है भाषा, सिंटैक्स विनिर्देशन की विशेषताओं के बजाय भाषा?)
अंतिम अनुच्छेद के लिए: यह वाक्यविन्यास का हिस्सा है। यह संभवतः व्याकरण का हिस्सा नहीं है, लेकिन टोकननाइजेशन और पार्सिंग के बीच भेद केवल अभ्यास में मौजूद है। और वहां सिस्टम हैं (उदा। पार्सिंग एक्सप्रेशन ग्रामर) जो टोकननाइज़ेशन चरण छोड़ते हैं और वास्तविक स्रोत कोड को पूरा करते हैं। – delnan
मेरे प्रयोगों का विवरण: ghc-6.10.4- [alt2] (http://prometheus.altlinux.org/en/5.1/srpms/ghc) (आईआईआरसी) ने यूनिकोड पहचानकर्ताओं को स्वीकार नहीं किया, ghc-6.12.3- alt4 और ghc-7.0.1- [alt1] (http://prometheus.altlinux.org/en/Sisyphus/srpms/ghc) यूनिकोड पहचानकर्ताओं को अनुमति देता है, और hugs98-20060921- [alt5] (http: //prometheus.altlinux .org/en/5.1/srpms/hugs98) यूनिकोड पहचानकर्ताओं को अनुमति नहीं देता है (जो दुर्भाग्यपूर्ण है, क्योंकि मैंने सोचा था कि यह अधिक जटिलता, यानी शायद सरल त्रुटि संदेशों के कारण ghc की तुलना में शिक्षा के लिए बेहतर हो सकता है)। –
यूनिकोड आईडी के साथ अधिक संबंधित प्रयोग: आह, और मैंने करी-0.9.11 को भी एक प्रयास दिया (क्योंकि मैं करी "एक्सटेंशन" के साथ कुछ कोड दिखाना चाहता हूं): यह मुएनस्टर करी कंपाइलर ने यूनिकोड पहचानकर्ताओं (आईआईआरसी) की अनुमति नहीं दी । –