हास्केल: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Functional programming language}} {{Other uses}} {{Use dmy dates|date=November 2019}} {{Infobox programming language | name = Haskell | logo = Logo_of_the_...")
 
No edit summary
Line 25: Line 25:
| file ext = .hs, .lhs
| file ext = .hs, .lhs
}}
}}
हास्केल ({{IPAc-en|ˈ|h|æ|s|k|əl}}<ref>{{cite mailing list |url=http://www.haskell.org/pipermail/haskell-cafe/2008-January/038756.html |title=कोई मुझे "हास्केल" का उच्चारण बता सकता है?|date=28 January 2008 |access-date=12 March 2011 |mailing-list=Haskell-cafe |last=Chevalier |first=Tim}}</ref>) एक सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषा है|सामान्य-उद्देश्य, स्थिर टाइपिंग|स्थैतिक रूप से टाइप की गई, प्रकार अनुमान और आलसी मूल्यांकन के साथ विशुद्ध रूप से कार्यात्मक प्रोग्रामिंग प्रोग्रामिंग भाषा।<ref>Type inference originally using [[Type inference#Hindley–Milner type inference algorithm|Hindley-Milner type inference]]</ref>{{sfn|Peyton Jones|2003}} शिक्षण, अनुसंधान और औद्योगिक अनुप्रयोगों के लिए डिज़ाइन किया गया, हास्केल ने कई प्रोग्रामिंग भाषा सुविधाओं का बीड़ा उठाया है जैसे कि टाइप क्लासेस, जो टाइप सुरक्षा को सक्षम करती हैं। टाइप-सेफ ऑपरेटर ओवरलोडिंग, और मोनाड_ (फंक्शनल_प्रोग्रामिंग) इनपुट / आउटपुट। हास्केल का मुख्य कार्यान्वयन ग्लासगो हास्केल कंपाइलर (जीएचसी) है। इसका नाम तर्कशास्त्री हास्केल करी के नाम पर रखा गया है।{{sfn|Hudak|Hughes|Peyton Jones|Wadler|2007}}
हास्केल ({{IPAc-en|ˈ|h|æ|s|k|əl}}<ref>{{cite mailing list |url=http://www.haskell.org/pipermail/haskell-cafe/2008-January/038756.html |title=कोई मुझे "हास्केल" का उच्चारण बता सकता है?|date=28 January 2008 |access-date=12 March 2011 |mailing-list=Haskell-cafe |last=Chevalier |first=Tim}}</ref>) एक सामान्य-उद्देश्य वाली [[ प्रोग्रामिंग भाषा ]] है|सामान्य-उद्देश्य, [[ स्थिर टाइपिंग ]]|स्थैतिक रूप से टाइप की गई, प्रकार अनुमान और [[ आलसी मूल्यांकन ]] के साथ [[ विशुद्ध रूप से कार्यात्मक प्रोग्रामिंग ]] प्रोग्रामिंग भाषा।<ref>Type inference originally using [[Type inference#Hindley–Milner type inference algorithm|Hindley-Milner type inference]]</ref>{{sfn|Peyton Jones|2003}} शिक्षण, अनुसंधान और औद्योगिक अनुप्रयोगों के लिए डिज़ाइन किया गया, हास्केल ने कई प्रोग्रामिंग भाषा सुविधाओं का बीड़ा उठाया है जैसे कि [[ वर्ग टाइप करें ]]ेस, जो टाइप सुरक्षा को सक्षम करती हैं। टाइप-सेफ [[ ऑपरेटर ओवरलोडिंग ]], और मोनाड_ (फंक्शनल_प्रोग्रामिंग) इनपुट / आउटपुट। हास्केल का मुख्य कार्यान्वयन [[ ग्लासगो हास्केल कंपाइलर ]] (जीएचसी) है। इसका नाम [[ तर्क ]]शास्त्री [[ हास्केल करी ]] के नाम पर रखा गया है।{{sfn|Hudak|Hughes|Peyton Jones|Wadler|2007}}
हास्केल के सिमेंटिक्स (कंप्यूटर विज्ञान) ऐतिहासिक रूप से मिरांडा (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज पर आधारित हैं, जो शुरुआती हास्केल वर्किंग ग्रुप के प्रयासों पर ध्यान केंद्रित करने के लिए काम करता था।<ref>Edward Kmett, [https://www.youtube.com/watch?v=hIZxTQP1ifo Edward Kmett – Type Classes vs. the World]</ref> भाषा का अंतिम औपचारिक विनिर्देश जुलाई 2010 में बनाया गया था, जबकि जीएचसी का विकास भाषा विस्तार के माध्यम से हास्केल का विस्तार करना जारी रखता है।
हास्केल के सिमेंटिक्स (कंप्यूटर विज्ञान) ऐतिहासिक रूप से [[ मिरांडा (प्रोग्रामिंग भाषा) ]] प्रोग्रामिंग लैंग्वेज पर आधारित हैं, जो शुरुआती हास्केल वर्किंग ग्रुप के प्रयासों पर ध्यान केंद्रित करने के लिए काम करता था।<ref>Edward Kmett, [https://www.youtube.com/watch?v=hIZxTQP1ifo Edward Kmett – Type Classes vs. the World]</ref> भाषा का अंतिम औपचारिक विनिर्देश जुलाई 2010 में बनाया गया था, जबकि जीएचसी का विकास भाषा विस्तार के माध्यम से हास्केल का विस्तार करना जारी रखता है।


हास्केल का उपयोग अकादमिक और उद्योग में किया जाता है।<ref>{{Citation|last=Mossberg|first=Erik|title=erkmos/haskell-companies|date=2020-06-08|url=https://github.com/erkmos/haskell-companies|access-date=2020-06-22}}</ref><ref>{{cite book |last1=O'Sullivan |first1=Bryan |last2=Goerzen |first2=John |last3=Stewart |first3=Donald Bruce |title=रियल वर्ल्ड हास्केल: कोड जिस पर आप विश्वास कर सकते हैं|date=15 November 2008 |publisher="O'Reilly Media, Inc." |isbn=978-0-596-55430-9 |pages=xxviii-xxxi |url=https://books.google.com/books?id=nh0okI1a1sQC |language=en}}</ref><ref>{{cite web|title=प्रोडक्शन में हास्केल: रिस्कबुक|url=https://serokell.io/blog/haskell-in-industry-riskbook|access-date=2021-09-07|website=Serokell Software Development Company|language=en}}</ref> {{As of|2021|May}}हास्केल ट्यूटोरियल के लिए Google खोजों द्वारा 28वीं सबसे लोकप्रिय प्रोग्रामिंग भाषा थी,<ref>{{cite web|last=|first=|date=May 2021|title=प्रोग्रामिंग लैंग्वेज इंडेक्स की PYPL लोकप्रियता|url=http://pypl.github.io/PYPL.html|url-status=dead|archive-url=https://web.archive.org/web/20210507222106/https://pypl.github.io/PYPL.html|archive-date=7 May 2021|access-date=16 May 2021|website=pypl.github.io|language=en}}</ref> और GitHub स्रोत कोड रिपॉजिटरी पर 1% से कम सक्रिय उपयोगकर्ता हैं।<ref>{{cite web|url=https://www.benfrederickson.com/ranking-programming-languages-by-github-users/|title=गिटहब उपयोगकर्ताओं द्वारा रैंकिंग प्रोग्रामिंग भाषाएं|last=Frederickson|first=Ben|website=www.benfrederickson.com|access-date=6 September 2019}}</ref>
हास्केल का उपयोग अकादमिक और उद्योग में किया जाता है।<ref>{{Citation|last=Mossberg|first=Erik|title=erkmos/haskell-companies|date=2020-06-08|url=https://github.com/erkmos/haskell-companies|access-date=2020-06-22}}</ref><ref>{{cite book |last1=O'Sullivan |first1=Bryan |last2=Goerzen |first2=John |last3=Stewart |first3=Donald Bruce |title=रियल वर्ल्ड हास्केल: कोड जिस पर आप विश्वास कर सकते हैं|date=15 November 2008 |publisher="O'Reilly Media, Inc." |isbn=978-0-596-55430-9 |pages=xxviii-xxxi |url=https://books.google.com/books?id=nh0okI1a1sQC |language=en}}</ref><ref>{{cite web|title=प्रोडक्शन में हास्केल: रिस्कबुक|url=https://serokell.io/blog/haskell-in-industry-riskbook|access-date=2021-09-07|website=Serokell Software Development Company|language=en}}</ref> {{As of|2021|May}}हास्केल ट्यूटोरियल के लिए Google खोजों द्वारा 28वीं सबसे लोकप्रिय प्रोग्रामिंग भाषा थी,<ref>{{cite web|last=|first=|date=May 2021|title=प्रोग्रामिंग लैंग्वेज इंडेक्स की PYPL लोकप्रियता|url=http://pypl.github.io/PYPL.html|url-status=dead|archive-url=https://web.archive.org/web/20210507222106/https://pypl.github.io/PYPL.html|archive-date=7 May 2021|access-date=16 May 2021|website=pypl.github.io|language=en}}</ref> और [[ GitHub ]] स्रोत कोड रिपॉजिटरी पर 1% से कम सक्रिय उपयोगकर्ता हैं।<ref>{{cite web|url=https://www.benfrederickson.com/ranking-programming-languages-by-github-users/|title=गिटहब उपयोगकर्ताओं द्वारा रैंकिंग प्रोग्रामिंग भाषाएं|last=Frederickson|first=Ben|website=www.benfrederickson.com|access-date=6 September 2019}}</ref>




== इतिहास ==
== इतिहास ==


1985 में रिसर्च सॉफ्टवेयर लिमिटेड द्वारा मिरांडा (प्रोग्रामिंग लैंग्वेज) जारी करने के बाद आलसी कार्यात्मक भाषाओं में रुचि बढ़ी। 1987 तक, एक दर्जन से अधिक गैर-सख्त कार्य, विशुद्ध रूप से कार्यात्मक प्रोग्रामिंग भाषाएं मौजूद थीं। मिरांडा सबसे व्यापक रूप से इस्तेमाल किया गया था, लेकिन यह मालिकाना सॉफ्टवेयर था। पोर्टलैंड, ओरेगॉन में फंक्शनल प्रोग्रामिंग लैंग्वेज एंड कंप्यूटर आर्किटेक्चर (FPCA '87) पर सम्मेलन में, एक मजबूत सहमति थी कि ऐसी भाषाओं के लिए एक खुले मानक को परिभाषित करने के लिए एक समिति का गठन किया जाए। समिति का उद्देश्य कार्यात्मक-भाषा डिजाइन में भविष्य के शोध के आधार के रूप में कार्य करने के लिए मौजूदा कार्यात्मक भाषाओं को एक आम भाषा में समेकित करना था।{{sfn|Peyton Jones|2003|loc=Preface}}
1985 में रिसर्च सॉफ्टवेयर लिमिटेड द्वारा मिरांडा (प्रोग्रामिंग लैंग्वेज) जारी करने के बाद आलसी कार्यात्मक भाषाओं में रुचि बढ़ी। 1987 तक, एक दर्जन से अधिक गैर-सख्त कार्य, विशुद्ध रूप से कार्यात्मक प्रोग्रामिंग भाषाएं मौजूद थीं। मिरांडा सबसे व्यापक रूप से इस्तेमाल किया गया था, लेकिन यह [[ मालिकाना सॉफ्टवेयर ]] था। पोर्टलैंड, ओरेगॉन में [[ कार्यात्मक प्रोग्रामिंग भाषाएं और कंप्यूटर वास्तुकला ]] (FPCA '87) पर सम्मेलन में, एक मजबूत सहमति थी कि ऐसी भाषाओं के लिए एक खुले मानक को परिभाषित करने के लिए एक समिति का गठन किया जाए। समिति का उद्देश्य कार्यात्मक-भाषा डिजाइन में भविष्य के शोध के आधार के रूप में कार्य करने के लिए मौजूदा कार्यात्मक भाषाओं को एक आम भाषा में समेकित करना था।{{sfn|Peyton Jones|2003|loc=Preface}}




Line 40: Line 40:
हास्केल को एक समिति द्वारा विकसित किया गया था, जहां संभव हो वहां शेल्फ समाधानों को एक साथ लाने का प्रयास किया गया था।
हास्केल को एक समिति द्वारा विकसित किया गया था, जहां संभव हो वहां शेल्फ समाधानों को एक साथ लाने का प्रयास किया गया था।


प्रकार की कक्षाएं, जो प्रकार की सुरक्षा को सक्षम करती हैं। प्रकार-सुरक्षित ऑपरेटर ओवरलोडिंग, पहली बार फिलिप वाडलर और स्टीफन ब्लॉट द्वारा समानता प्रकारों के तदर्थ संचालन और उस समय भाषाओं में अंकगणितीय अधिभार को संबोधित करने के लिए प्रस्तावित किया गया था।<ref>{{cite web|url=https://www.researchgate.net/publication/2710954|title=तदर्थ बहुरूपता को कम तदर्थ कैसे बनाया जाए|last=Wadler|first=Philip|date=October 1988}}</ref>
प्रकार की कक्षाएं, जो प्रकार की सुरक्षा को सक्षम करती हैं। प्रकार-सुरक्षित ऑपरेटर ओवरलोडिंग, पहली बार [[ फिलिप वाडलर ]] और स्टीफन ब्लॉट द्वारा समानता प्रकारों के तदर्थ संचालन और उस समय भाषाओं में अंकगणितीय अधिभार को संबोधित करने के लिए प्रस्तावित किया गया था।<ref>{{cite web|url=https://www.researchgate.net/publication/2710954|title=तदर्थ बहुरूपता को कम तदर्थ कैसे बनाया जाए|last=Wadler|first=Philip|date=October 1988}}</ref>
हास्केल के शुरुआती संस्करणों में संस्करण 1.2 तक और इसमें शामिल हैं, उपयोगकर्ता इंटरैक्शन और आईओ (इनपुट और आउटपुट) दोनों स्ट्रीम आधारित और निरंतरता आधारित तंत्र द्वारा नियंत्रित किए गए थे जिन्हें व्यापक रूप से असंतोषजनक माना जाता था।<ref>{{cite web|url=https://www.microsoft.com/en-us/research/publication/wearing-hair-shirt-retrospective-haskell-2003/|title=हेयर शर्ट पहनना: हास्केल पर एक पूर्वव्यापी|last=Peyton Jones|first=Simon|date=2003|ref=none}}</ref> संस्करण 1.3 में, मोनाड_ (कार्यात्मक_प्रोग्रामिंग) आईओ को टाइप क्लास के सामान्यीकरण के साथ-साथ उच्च प्रकार (टाइप कन्स्ट्रक्टर) के साथ पेश किया गया था। नोटेशन के साथ, जो मोनाड टाइप क्लास के लिए सिंटैक्टिक चीनी प्रदान करता है, इसने हास्केल को एक प्रभाव प्रणाली दी जो रेफरेंसियल पारदर्शिता बनाए रखती थी और सुविधाजनक थी।
हास्केल के शुरुआती संस्करणों में संस्करण 1.2 तक और इसमें शामिल हैं, उपयोगकर्ता इंटरैक्शन और आईओ (इनपुट और आउटपुट) दोनों स्ट्रीम आधारित और निरंतरता आधारित तंत्र द्वारा नियंत्रित किए गए थे जिन्हें व्यापक रूप से असंतोषजनक माना जाता था।<ref>{{cite web|url=https://www.microsoft.com/en-us/research/publication/wearing-hair-shirt-retrospective-haskell-2003/|title=हेयर शर्ट पहनना: हास्केल पर एक पूर्वव्यापी|last=Peyton Jones|first=Simon|website=[[Microsoft]] |date=2003|ref=none}}</ref> संस्करण 1.3 में, मोनाड_ (कार्यात्मक_प्रोग्रामिंग) आईओ को टाइप क्लास के सामान्यीकरण के साथ-साथ उच्च प्रकार (टाइप कन्स्ट्रक्टर) के साथ पेश किया गया था। नोटेशन के साथ, जो मोनाड टाइप क्लास के लिए सिंटैक्टिक चीनी प्रदान करता है, इसने हास्केल को एक प्रभाव प्रणाली दी जो रेफरेंसियल पारदर्शिता बनाए रखती थी और सुविधाजनक थी।


शुरुआती संस्करणों में अन्य उल्लेखनीय परिवर्तन 'seq' फ़ंक्शन के दृष्टिकोण थे, जो मूल्यों के बीच डेटा निर्भरता बनाता है, और अत्यधिक मेमोरी खपत से बचने के लिए आलसी भाषाओं में इसका उपयोग किया जाता है; रिफैक्टरिंग को और अधिक व्यावहारिक बनाने के लिए इसे एक प्रकार के वर्ग से एक मानक कार्य में ले जाना।
शुरुआती संस्करणों में अन्य उल्लेखनीय परिवर्तन 'seq' फ़ंक्शन के दृष्टिकोण थे, जो मूल्यों के बीच डेटा निर्भरता बनाता है, और अत्यधिक मेमोरी खपत से बचने के लिए आलसी भाषाओं में इसका उपयोग किया जाता है; रिफैक्टरिंग को और अधिक व्यावहारिक बनाने के लिए इसे एक प्रकार के वर्ग से एक मानक कार्य में ले जाना।
Line 51: Line 51:
=== हास्केल 98 ===
=== हास्केल 98 ===


1997 के अंत में, हास्केल 98 में श्रृंखला समाप्त हुई, जिसका उद्देश्य भाषा के एक स्थिर, न्यूनतम, पोर्टेबल संस्करण और शिक्षण के लिए एक मानक पुस्तकालय (कंप्यूटर विज्ञान) और भविष्य के विस्तार के लिए आधार के रूप में निर्दिष्ट करना था। समिति ने प्रायोगिक सुविधाओं को जोड़कर और शामिल करके हास्केल 98 के एक्सटेंशन और वेरिएंट बनाने का स्पष्ट रूप से स्वागत किया।{{sfn|Peyton Jones|2003|loc=Preface}}
1997 के अंत में, हास्केल 98 में श्रृंखला समाप्त हुई, जिसका उद्देश्य भाषा के एक स्थिर, न्यूनतम, पोर्टेबल संस्करण और शिक्षण के लिए एक मानक [[ पुस्तकालय (कंप्यूटर विज्ञान) ]] और भविष्य के विस्तार के लिए आधार के रूप में निर्दिष्ट करना था। समिति ने प्रायोगिक सुविधाओं को जोड़कर और शामिल करके हास्केल 98 के एक्सटेंशन और वेरिएंट बनाने का स्पष्ट रूप से स्वागत किया।{{sfn|Peyton Jones|2003|loc=Preface}}
फरवरी 1999 में, हास्केल 98 भाषा मानक को मूल रूप से द हास्केल 98 रिपोर्ट के रूप में प्रकाशित किया गया था।{{sfn|Peyton Jones|2003|loc=Preface}} जनवरी 2003 में, हास्केल 98 भाषा और पुस्तकालय: संशोधित रिपोर्ट के रूप में एक संशोधित संस्करण प्रकाशित किया गया था।{{sfn|Peyton Jones|2003}} भाषा तेजी से विकसित हो रही है, ग्लासगो हास्केल कंपाइलर (जीएचसी) कार्यान्वयन वर्तमान वास्तविक मानक का प्रतिनिधित्व करता है।<ref name=HaskellWikiImpl>{{cite web|title=हास्केल विकी: कार्यान्वयन|url=http://www.haskell.org/haskellwiki/Implementations|access-date=18 December 2012}}</ref>
फरवरी 1999 में, हास्केल 98 भाषा मानक को मूल रूप से द हास्केल 98 रिपोर्ट के रूप में प्रकाशित किया गया था।{{sfn|Peyton Jones|2003|loc=Preface}} जनवरी 2003 में, हास्केल 98 भाषा और पुस्तकालय: संशोधित रिपोर्ट के रूप में एक संशोधित संस्करण प्रकाशित किया गया था।{{sfn|Peyton Jones|2003}} भाषा तेजी से विकसित हो रही है, ग्लासगो हास्केल कंपाइलर (जीएचसी) कार्यान्वयन वर्तमान वास्तविक मानक का प्रतिनिधित्व करता है।<ref name=HaskellWikiImpl>{{cite web|title=हास्केल विकी: कार्यान्वयन|url=http://www.haskell.org/haskellwiki/Implementations|access-date=18 December 2012}}</ref>


Line 61: Line 61:
हास्केल 2010 भाषा के लिए एक वृद्धिशील अद्यतन है, जिसमें ज्यादातर अच्छी तरह से उपयोग की जाने वाली और गैर-विवादास्पद विशेषताएं शामिल हैं जो पहले संकलक-विशिष्ट झंडे के माध्यम से सक्षम थीं।
हास्केल 2010 भाषा के लिए एक वृद्धिशील अद्यतन है, जिसमें ज्यादातर अच्छी तरह से उपयोग की जाने वाली और गैर-विवादास्पद विशेषताएं शामिल हैं जो पहले संकलक-विशिष्ट झंडे के माध्यम से सक्षम थीं।
* पदानुक्रमित मॉड्यूल नाम। मॉड्यूल नामों को केवल एक ऐसे पहचानकर्ता के बजाय पूंजीकृत पहचानकर्ताओं के डॉट-पृथक अनुक्रमों को शामिल करने की अनुमति है। यह मॉड्यूल को पदानुक्रमित तरीके से नामित करने देता है (उदाहरण के लिए, <code>Data.List</code> के बजाय <code>List</code>), हालांकि तकनीकी रूप से मॉड्यूल अभी भी एक मोनोलिथिक नेमस्पेस में हैं। यह एक्सटेंशन हास्केल 98 के परिशिष्ट में निर्दिष्ट किया गया था और व्यवहार में सार्वभौमिक रूप से उपयोग किया गया था।
* पदानुक्रमित मॉड्यूल नाम। मॉड्यूल नामों को केवल एक ऐसे पहचानकर्ता के बजाय पूंजीकृत पहचानकर्ताओं के डॉट-पृथक अनुक्रमों को शामिल करने की अनुमति है। यह मॉड्यूल को पदानुक्रमित तरीके से नामित करने देता है (उदाहरण के लिए, <code>Data.List</code> के बजाय <code>List</code>), हालांकि तकनीकी रूप से मॉड्यूल अभी भी एक मोनोलिथिक नेमस्पेस में हैं। यह एक्सटेंशन हास्केल 98 के परिशिष्ट में निर्दिष्ट किया गया था और व्यवहार में सार्वभौमिक रूप से उपयोग किया गया था।
* विदेशी फ़ंक्शन इंटरफ़ेस (FFI) अन्य प्रोग्रामिंग भाषाओं के लिए बाइंडिंग की अनुमति देता है। रिपोर्ट में केवल C (प्रोग्रामिंग भाषा) के लिए बाइंडिंग निर्दिष्ट हैं, लेकिन डिज़ाइन अन्य भाषा बाइंडिंग के लिए अनुमति देता है। इसका समर्थन करने के लिए, डेटा प्रकार की घोषणाओं में कोई कंस्ट्रक्टर नहीं होने की अनुमति दी गई थी, जो हास्केल में निर्मित नहीं किए जा सकने वाले विदेशी डेटा के लिए मजबूत गैर प्रकार को सक्षम करता है। यह एक्सटेंशन पहले हास्केल 98 रिपोर्ट के परिशिष्ट में निर्दिष्ट किया गया था और व्यापक रूप से उपयोग किया गया था।
* [[ विदेशी फ़ंक्शन इंटरफ़ेस ]] (FFI) अन्य प्रोग्रामिंग भाषाओं के लिए बाइंडिंग की अनुमति देता है। रिपोर्ट में केवल C (प्रोग्रामिंग भाषा) के लिए बाइंडिंग निर्दिष्ट हैं, लेकिन डिज़ाइन अन्य भाषा बाइंडिंग के लिए अनुमति देता है। इसका समर्थन करने के लिए, डेटा प्रकार की घोषणाओं में कोई कंस्ट्रक्टर नहीं होने की अनुमति दी गई थी, जो हास्केल में निर्मित नहीं किए जा सकने वाले विदेशी डेटा के लिए मजबूत गैर प्रकार को सक्षम करता है। यह एक्सटेंशन पहले हास्केल 98 रिपोर्ट के परिशिष्ट में निर्दिष्ट किया गया था और व्यापक रूप से उपयोग किया गया था।
* तथाकथित एन + के पैटर्न (फॉर्म की परिभाषाएं <code>fact (n+1) = (n+1) * fact n</code>) की अनुमति नहीं थी। इस सिंटैक्टिक चीनी में भ्रामक शब्दार्थ था, जिसमें कोड ऐसा दिखता था जैसे इसका उपयोग किया गया हो <code>(+)</code> ऑपरेटर, लेकिन वास्तव में कोड का उपयोग करने के लिए desugared <code>(-)</code> तथा <code>(>=)</code>.
* तथाकथित एन + के पैटर्न (फॉर्म की परिभाषाएं <code>fact (n+1) = (n+1) * fact n</code>) की अनुमति नहीं थी। इस [[ सिंटैक्टिक चीनी ]] में भ्रामक शब्दार्थ था, जिसमें कोड ऐसा दिखता था जैसे इसका उपयोग किया गया हो <code>(+)</code> ऑपरेटर, लेकिन वास्तव में कोड का उपयोग करने के लिए desugared <code>(-)</code> और <code>(>=)</code>.
* प्रकार के अनुमान के नियमों में ढील दी गई ताकि अधिक कार्यक्रमों को जाँचने की अनुमति मिल सके।
* प्रकार के अनुमान के नियमों में ढील दी गई ताकि अधिक कार्यक्रमों को जाँचने की अनुमति मिल सके।
* कुछ सिंटैक्स (प्रोग्रामिंग लैंग्वेज) मुद्दे (औपचारिक व्याकरण में परिवर्तन) तय किए गए थे: पैटर्न गार्ड जोड़े गए थे, जिससे गार्ड के भीतर पैटर्न मिलान हो सके; संचालन के आदेश का संकल्प सरल तरीके से निर्दिष्ट किया गया था जो वास्तविक अभ्यास को दर्शाता है; ऑपरेटरों और टिप्पणियों के भाषा के लेक्सिकल सिंटैक्स की बातचीत में एक बढ़त का मामला संबोधित किया गया था, और अनपेक्षित सिंटैक्स त्रुटियों को खत्म करने के लिए do-notation और if-then-else की बातचीत को ट्वीक किया गया था।
* कुछ [[ सिंटेक्स (प्रोग्रामिंग भाषाएं) ]] मुद्दे (औपचारिक व्याकरण में परिवर्तन) तय किए गए थे: [[ पैटर्न गार्ड ]] जोड़े गए थे, जिससे गार्ड के भीतर पैटर्न मिलान हो सके; संचालन के आदेश का संकल्प सरल तरीके से निर्दिष्ट किया गया था जो वास्तविक अभ्यास को दर्शाता है; ऑपरेटरों और टिप्पणियों के भाषा के [[ शाब्दिक वाक्य रचना ]] की बातचीत में एक बढ़त का मामला संबोधित किया गया था, और अनपेक्षित सिंटैक्स त्रुटियों को खत्म करने के लिए do-notation और if-then-else की बातचीत को ट्वीक किया गया था।
* <code>LANGUAGE</code> ई> निर्देश (प्रोग्रामिंग) निर्दिष्ट किया गया था। 2010 तक, भाषा के दर्जनों विस्तार व्यापक उपयोग में थे, और GHC (अन्य संकलकों के बीच) ने प्रदान किया <code>LANGUAGE</code> pragma पहचानकर्ताओं की सूची के साथ अलग-अलग एक्सटेंशन निर्दिष्ट करने के लिए। समर्थन करने के लिए हास्केल 2010 कंपाइलर्स की आवश्यकता है <code>Haskell2010</code> एक्सटेंशन और कई अन्य लोगों का समर्थन करने के लिए प्रोत्साहित किया जाता है, जो हास्केल 2010 में जोड़े गए एक्सटेंशन के अनुरूप हैं।
* <code>LANGUAGE</code> ई> [[ निर्देश (प्रोग्रामिंग) ]] निर्दिष्ट किया गया था। 2010 तक, भाषा के दर्जनों विस्तार व्यापक उपयोग में थे, और GHC (अन्य संकलकों के बीच) ने प्रदान किया <code>LANGUAGE</code> pragma पहचानकर्ताओं की सूची के साथ अलग-अलग एक्सटेंशन निर्दिष्ट करने के लिए। समर्थन करने के लिए हास्केल 2010 कंपाइलर्स की आवश्यकता है <code>Haskell2010</code> एक्सटेंशन और कई अन्य लोगों का समर्थन करने के लिए प्रोत्साहित किया जाता है, जो हास्केल 2010 में जोड़े गए एक्सटेंशन के अनुरूप हैं।


=== भविष्य के मानक ===
=== भविष्य के मानक ===
Line 75: Line 75:
{{Main|Haskell features}}
{{Main|Haskell features}}
{{See also|Glasgow Haskell Compiler#Extensions to Haskell}}
{{See also|Glasgow Haskell Compiler#Extensions to Haskell}}
हास्केल में आलसी मूल्यांकन, बेनामी फ़ंक्शन, पैटर्न मिलान, सूची समझ, प्रकार वर्ग और प्रकार बहुरूपता शामिल हैं। यह विशुद्ध रूप से कार्यात्मक भाषा है, जिसका अर्थ है कि कार्यों का आमतौर पर कोई साइड इफेक्ट (कंप्यूटर विज्ञान) नहीं होता है। साइड इफेक्ट्स का प्रतिनिधित्व करने के लिए एक अलग निर्माण मौजूद है, ऑर्थोगोनल # कंप्यूटर विज्ञान कार्यों के प्रकार के लिए। एक शुद्ध कार्य एक दुष्प्रभाव वापस कर सकता है जिसे बाद में निष्पादित किया जाता है, शुद्ध कार्य # अन्य भाषाओं के अशुद्ध कार्यों को मॉडलिंग करता है।
हास्केल में आलसी मूल्यांकन, बेनामी फ़ंक्शन, [[ पैटर्न मिलान ]], [[ सूची समझ ]], प्रकार वर्ग और प्रकार बहुरूपता शामिल हैं। यह [[ विशुद्ध रूप से कार्यात्मक भाषा ]] है, जिसका अर्थ है कि कार्यों का आमतौर पर कोई [[ साइड इफेक्ट (कंप्यूटर विज्ञान) ]] नहीं होता है। साइड इफेक्ट्स का प्रतिनिधित्व करने के लिए एक अलग निर्माण मौजूद है, ऑर्थोगोनल # कंप्यूटर विज्ञान कार्यों के प्रकार के लिए। एक शुद्ध कार्य एक दुष्प्रभाव वापस कर सकता है जिसे बाद में निष्पादित किया जाता है, शुद्ध कार्य # अन्य भाषाओं के अशुद्ध कार्यों को मॉडलिंग करता है।


हास्केल के पास दृढ़ता से टाइप की गई प्रोग्रामिंग भाषा है, स्टैटिक टाइप#स्टेटिक टाइपिंग टाइप सिस्टम हिंडले-मिलनर प्रकार के अनुमान पर आधारित है। इस क्षेत्र में इसका प्रमुख नवाचार प्रकार वर्ग है, मूल रूप से भाषा में बहुरूपता (कंप्यूटर विज्ञान) को जोड़ने के लिए एक सैद्धांतिक तरीके के रूप में माना जाता है,<ref name="wadler89">{{cite journal|last1=Wadler|first1=P.|first2=S. |last2=Blott|year=1989|title=तदर्थ बहुरूपता को कम तदर्थ कैसे बनाया जाए|journal=Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages|publisher=[[Association for Computing Machinery|ACM]]|pages=60–76|doi=10.1145/75277.75283|isbn=978-0-89791-294-5|s2cid=15327197}}</ref> लेकिन कई और उपयोग खोजने के बाद से।<ref name="hallgren01">{{cite journal|last=Hallgren|first=T.|date=January 2001|title=फंक्‍शनल डिपेंडेंसीज के साथ फन, या हास्केल में स्‍टेटिक संगणनाओं में वैल्‍यू के रूप में टाइप|journal=Proceedings of the Joint CS/CE Winter Meeting|location=Varberg, Sweden|url=http://www.cs.chalmers.se/~hallgren/Papers/wm01.html}}</ref>
हास्केल के पास [[ दृढ़ता से टाइप की गई प्रोग्रामिंग भाषा ]] है, स्टैटिक टाइप#स्टेटिक टाइपिंग टाइप सिस्टम हिंडले-मिलनर प्रकार के अनुमान पर आधारित है। इस क्षेत्र में इसका प्रमुख नवाचार प्रकार वर्ग है, मूल रूप से भाषा में [[ बहुरूपता (कंप्यूटर विज्ञान) ]] को जोड़ने के लिए एक सैद्धांतिक तरीके के रूप में माना जाता है,<ref name="wadler89">{{cite journal|last1=Wadler|first1=P.|first2=S. |last2=Blott|year=1989|title=तदर्थ बहुरूपता को कम तदर्थ कैसे बनाया जाए|journal=Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages|publisher=[[Association for Computing Machinery|ACM]]|pages=60–76|doi=10.1145/75277.75283|isbn=978-0-89791-294-5|s2cid=15327197}}</ref> लेकिन कई और उपयोग खोजने के बाद से।<ref name="hallgren01">{{cite journal|last=Hallgren|first=T.|date=January 2001|title=फंक्‍शनल डिपेंडेंसीज के साथ फन, या हास्केल में स्‍टेटिक संगणनाओं में वैल्‍यू के रूप में टाइप|journal=Proceedings of the Joint CS/CE Winter Meeting|location=Varberg, Sweden|url=http://www.cs.chalmers.se/~hallgren/Papers/wm01.html}}</ref>
निर्माण जो साइड-इफेक्ट्स का प्रतिनिधित्व करता है, एक मोनाड (कार्यात्मक प्रोग्रामिंग) का एक उदाहरण है: एक सामान्य ढांचा जो विभिन्न संगणनाओं को मॉडल कर सकता है जैसे कि त्रुटि से निपटने, गैर-नियतात्मक एल्गोरिथ्म, पार्सिंग और सॉफ्टवेयर ट्रांसेक्शनल मेमोरी। उन्हें साधारण डेटाटाइप्स के रूप में परिभाषित किया गया है, लेकिन हास्केल उनके उपयोग के लिए कुछ सिंटैक्टिक चीनी प्रदान करता है।
निर्माण जो साइड-इफेक्ट्स का प्रतिनिधित्व करता है, एक [[ मोनाड (कार्यात्मक प्रोग्रामिंग) ]] का एक उदाहरण है: एक सामान्य ढांचा जो विभिन्न संगणनाओं को मॉडल कर सकता है जैसे कि त्रुटि से निपटने, गैर-नियतात्मक एल्गोरिथ्म, [[ पदच्छेद ]] और [[ सॉफ्टवेयर लेनदेन स्मृति ]] उन्हें साधारण डेटाटाइप्स के रूप में परिभाषित किया गया है, लेकिन हास्केल उनके उपयोग के लिए कुछ सिंटैक्टिक चीनी प्रदान करता है।


हास्केल का एक खुला, प्रकाशित विनिर्देश है,{{sfn|Peyton Jones|2003}} और #कार्यान्वयन। इसका मुख्य कार्यान्वयन, ग्लासगो हास्केल कंपाइलर (जीएचसी), एक इंटरप्रेटर (कंप्यूटिंग) और मशीन कोड | नेटिव-कोड कंपाइलर दोनों है जो अधिकांश प्लेटफॉर्म पर चलता है। जीएचसी अपने समृद्ध प्रकार की प्रणाली के लिए विख्यात है, जिसमें सामान्यीकृत बीजगणितीय डेटा प्रकार और प्रकार परिवारों जैसे हाल के नवाचारों को शामिल किया गया है। कंप्यूटर लैंग्वेज बेंचमार्क गेम कॉन्करेंसी (कंप्यूटर साइंस) और समानांतर कंप्यूटिंग के अपने उच्च-प्रदर्शन कार्यान्वयन पर भी प्रकाश डालता है।<ref name="shootout">[https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/haskell.html Computer Language Benchmarks Game]</ref>
हास्केल का एक खुला, प्रकाशित विनिर्देश है,{{sfn|Peyton Jones|2003}} और #कार्यान्वयन। इसका मुख्य कार्यान्वयन, ग्लासगो हास्केल [[ संकलक ]] (जीएचसी), एक इंटरप्रेटर (कंप्यूटिंग) और [[ मशीन कोड ]] | नेटिव-कोड कंपाइलर दोनों है जो अधिकांश प्लेटफॉर्म पर चलता है। जीएचसी अपने समृद्ध प्रकार की प्रणाली के लिए विख्यात है, जिसमें [[ सामान्यीकृत बीजगणितीय डेटा प्रकार ]] और प्रकार परिवारों जैसे हाल के नवाचारों को शामिल किया गया [[ कंप्यूटर भाषा बेंचमार्क गेम ]] कॉन्करेंसी (कंप्यूटर साइंस) और [[ समानांतर कंप्यूटिंग ]] के अपने उच्च-प्रदर्शन कार्यान्वयन पर भी प्रकाश डालता है।<ref name="shootout">[https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/haskell.html Computer Language Benchmarks Game]</ref>
एक सक्रिय, बढ़ता हुआ समुदाय भाषा के आसपास मौजूद है, और ऑनलाइन पैकेज रिपॉजिटरी हैकेज में 5,400 से अधिक तृतीय-पक्ष ओपन-सोर्स लाइब्रेरी और टूल उपलब्ध हैं।<ref name="hackage-stats">{{cite web|url=http://hackage.haskell.org/cgi-bin/hackage-scripts/stats|archive-url=https://web.archive.org/web/20130503114836/http://hackage.haskell.org/cgi-bin/hackage-scripts/stats|archive-date=3 May 2013 |title=HackageDB आँकड़े|publisher=Hackage.haskell.org |access-date=26 June 2013}}</ref>
एक सक्रिय, बढ़ता हुआ समुदाय भाषा के आसपास मौजूद है, और ऑनलाइन पैकेज रिपॉजिटरी हैकेज में 5,400 से अधिक तृतीय-पक्ष ओपन-सोर्स लाइब्रेरी और टूल उपलब्ध हैं।<ref name="hackage-stats">{{cite web|url=http://hackage.haskell.org/cgi-bin/hackage-scripts/stats|archive-url=https://web.archive.org/web/20130503114836/http://hackage.haskell.org/cgi-bin/hackage-scripts/stats|archive-date=3 May 2013 |title=HackageDB आँकड़े|publisher=Hackage.haskell.org |access-date=26 June 2013}}</ref>


Line 95: Line 95:
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


हास्केल में फैक्टोरियल फ़ंक्शन, कुछ अलग तरीकों से परिभाषित किया गया है (पहली पंक्ति टाइप सिग्नेचर है, जो वैकल्पिक है और प्रत्येक कार्यान्वयन के लिए समान है):
हास्केल में [[ कारख़ाने का ]] फ़ंक्शन, कुछ अलग तरीकों से परिभाषित किया गया है (पहली पंक्ति [[ हस्ताक्षर टाइप करें ]] है, जो वैकल्पिक है और प्रत्येक कार्यान्वयन के लिए समान है):
<वाक्यविन्यास लैंग = हैकेल>
<वाक्यविन्यास लैंग = हैकेल>
फैक्टोरियल :: (इंटीग्रल ए) => ए -> ए
फैक्टोरियल :: (इंटीग्रल ए) => ए -> ए
Line 132: Line 132:
- सूची समझ का उपयोग करना
- सूची समझ का उपयोग करना
QuickSort [] = [] - खाली सूची पहले से ही क्रमबद्ध है
QuickSort [] = [] - खाली सूची पहले से ही क्रमबद्ध है
क्विकसॉर्ट (x:xs) = क्विकसॉर्ट [ए | a <- xs, a <x] - सूची के बाएं भाग को क्रमबद्ध करें
[[ जल्दी से सुलझाएं ]]x:xs) = क्विकसॉर्ट [ए | a <- xs, a <x] - सूची के बाएं भाग को क्रमबद्ध करें
                   ++ [x] ++ - दो क्रमबद्ध भागों के बीच पिवट सम्मिलित करें
                   ++ [x] ++ - दो क्रमबद्ध भागों के बीच पिवट सम्मिलित करें
                   क्विकसॉर्ट [ए | a <- xs, a >= x] -- सूची के दाहिने हिस्से को क्रमबद्ध करें
                   क्विकसॉर्ट [ए | a <- xs, a >= x] -- सूची के दाहिने हिस्से को क्रमबद्ध करें
Line 145: Line 145:
== कार्यान्वयन ==
== कार्यान्वयन ==
<!-- To anyone wishing to expand or improve this section: the article "A History of Haskell: Being Lazy With Class", linked to in the Further reading section contains detailed descriptions of all implementations. -->
<!-- To anyone wishing to expand or improve this section: the article "A History of Haskell: Being Lazy With Class", linked to in the Further reading section contains detailed descriptions of all implementations. -->
सभी सूचीबद्ध कार्यान्वयन ओपन सोर्स लाइसेंस के अंतर्गत वितरित किए जाते हैं।<ref name="implementations">[http://www.haskell.org/haskellwiki/Implementations "Implementations"] at the Haskell Wiki</ref>
सभी सूचीबद्ध कार्यान्वयन [[ ओपन सोर्स लाइसेंस ]] के अंतर्गत वितरित किए जाते हैं।<ref name="implementations">[http://www.haskell.org/haskellwiki/Implementations "Implementations"] at the Haskell Wiki</ref>
हास्केल 98 मानक का पूरी तरह या लगभग अनुपालन करने वाले कार्यान्वयन में शामिल हैं:
हास्केल 98 मानक का पूरी तरह या लगभग अनुपालन करने वाले कार्यान्वयन में शामिल हैं:
* ग्लासगो हास्केल कंपाइलर (जीएचसी) कई अलग-अलग प्रोसेसर आर्किटेक्चर पर मूल कोड और एएनएसआई सी के लिए दो मध्यवर्ती भाषाओं में से एक के माध्यम से संकलित करता है: सी--, या हाल के संस्करणों में, एलएलवीएम (पूर्व में निम्न स्तरीय वर्चुअल मशीन) बिटकोड।<ref>{{cite web|
* ग्लासगो हास्केल कंपाइलर (जीएचसी) कई अलग-अलग प्रोसेसर आर्किटेक्चर पर मूल कोड और [[ एएनएसआई सी ]] के लिए दो [[ मध्यवर्ती भाषा ]]ओं में से एक के माध्यम से संकलित करता है: [[ सी-- ]], या हाल के संस्करणों में, [[ एलएलवीएम ]] (पूर्व में निम्न स्तरीय वर्चुअल मशीन) बिटकोड।<ref>{{cite web|
url=https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM|
url=https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM|
title=The LLVM Backend|
title=The LLVM Backend|
Line 158: Line 158:
| date = 2010
| date = 2010
| publisher = ACM Press
| publisher = ACM Press
| book-title = Proceedings of ACM SIGPLAN Haskell Symposium 2010}}</ref> जीएचसी वास्तविक मानक हास्केल बोली बन गई है।<ref>C. Ryder and S. Thompson (2005). [http://kar.kent.ac.uk/14237/1/Tech_Chris.pdf "Porting HaRe to the GHC API"]</ref> पुस्तकालय हैं (उदाहरण के लिए, ओपनजीएल के लिए बाइंडिंग) जो केवल जीएचसी के साथ काम करते हैं। जीएचसी को हास्केल प्लेटफॉर्म के साथ भी वितरित किया गया था।
| book-title = Proceedings of ACM SIGPLAN Haskell Symposium 2010}}</ref> जीएचसी वास्तविक मानक हास्केल बोली बन गई है।<ref>C. Ryder and S. Thompson (2005). [http://kar.kent.ac.uk/14237/1/Tech_Chris.pdf "Porting HaRe to the GHC API"]</ref> पुस्तकालय हैं (उदाहरण के लिए, [[ ओपन ]]जीएल के लिए बाइंडिंग) जो केवल जीएचसी के साथ काम करते हैं। जीएचसी को [[ हास्केल मंच ]] के साथ भी वितरित किया गया था।
* जेएचसी, जॉन मेचम द्वारा लिखित एक हास्केल संकलक, उत्पन्न कार्यक्रमों की गति और दक्षता पर जोर देता है और नए कार्यक्रम परिवर्तनों की खोज करता है।
* जेएचसी, जॉन मेचम द्वारा लिखित एक हास्केल संकलक, उत्पन्न कार्यक्रमों की गति और दक्षता पर जोर देता है और नए कार्यक्रम परिवर्तनों की खोज करता है।
** Ajhc Jhc का एक कांटा है।
** Ajhc Jhc का एक कांटा है।
* यूट्रेक्ट हास्केल कंपाइलर (यूएचसी) यूट्रेक्ट विश्वविद्यालय से हास्केल कार्यान्वयन है।<ref>[http://www.cs.uu.nl/wiki/UHC Utrecht Haskell Compiler]</ref> यह लगभग सभी हास्केल 98 सुविधाओं और कई प्रयोगात्मक एक्सटेंशन का समर्थन करता है। यह विशेषता व्याकरण का उपयोग करके कार्यान्वित किया जाता है और वर्तमान में ज्यादातर उत्पन्न प्रकार प्रणालियों और भाषा एक्सटेंशन पर शोध के लिए उपयोग किया जाता है।
* यूट्रेक्ट हास्केल कंपाइलर (यूएचसी) यूट्रेक्ट विश्वविद्यालय से हास्केल कार्यान्वयन है।<ref>[http://www.cs.uu.nl/wiki/UHC Utrecht Haskell Compiler]</ref> यह लगभग सभी हास्केल 98 सुविधाओं और कई प्रयोगात्मक एक्सटेंशन का समर्थन करता है। यह [[ विशेषता व्याकरण ]] का उपयोग करके कार्यान्वित किया जाता है और वर्तमान में ज्यादातर उत्पन्न प्रकार प्रणालियों और भाषा एक्सटेंशन पर शोध के लिए उपयोग किया जाता है।


कार्यान्वयन अब सक्रिय रूप से बनाए नहीं रखा जाता है इसमें शामिल हैं:
कार्यान्वयन अब सक्रिय रूप से बनाए नहीं रखा जाता है इसमें शामिल हैं:
* हास्केल यूजर का गोफर सिस्टम (हग्स (दुभाषिया)) एक बायटेकोड दुभाषिया है। यह एक बार जीएचसी कंपाइलर के साथ सबसे व्यापक रूप से उपयोग किए जाने वाले कार्यान्वयन में से एक था,{{sfn|Hudak|Hughes|Peyton Jones|Wadler|2007|pp=12–22}} लेकिन अब ज्यादातर जीएचसीआई द्वारा प्रतिस्थापित कर दिया गया है। यह एक ग्राफिक्स लाइब्रेरी के साथ भी आता है।
* हास्केल यूजर का गोफर सिस्टम (हग्स (दुभाषिया)) एक [[ बाईटकोड ]] दुभाषिया है। यह एक बार जीएचसी कंपाइलर के साथ सबसे व्यापक रूप से उपयोग किए जाने वाले कार्यान्वयन में से एक था,{{sfn|Hudak|Hughes|Peyton Jones|Wadler|2007|pp=12–22}} लेकिन अब ज्यादातर जीएचसीआई द्वारा प्रतिस्थापित कर दिया गया है। यह एक ग्राफिक्स लाइब्रेरी के साथ भी आता है।
* एचबीसी हास्केल 1.4 का समर्थन करने वाला एक प्रारंभिक कार्यान्वयन है। यह लेनार्ट ऑगस्टसन द्वारा लेज़ी एमएल पर आधारित और लागू किया गया था। यह कुछ समय के लिए सक्रिय रूप से विकसित नहीं हुआ है।
* एचबीसी हास्केल 1.4 का समर्थन करने वाला एक प्रारंभिक कार्यान्वयन है। यह [[ लेनार्ट ऑगस्टसन ]] द्वारा [[ आलसी एमएल ]] पर आधारित और लागू किया गया था। यह कुछ समय के लिए सक्रिय रूप से विकसित नहीं हुआ है।
* nhc98 मेमोरी उपयोग को कम करने पर ध्यान केंद्रित करने वाला एक बायटेकोड कंपाइलर है।
* nhc98 मेमोरी उपयोग को कम करने पर ध्यान केंद्रित करने वाला एक बायटेकोड कंपाइलर है।
** यॉर्क हास्केल कंपाइलर (Yhc) nhc98 का ​​एक कांटा था, जिसका लक्ष्य सरल, अधिक पोर्टेबल और कुशल होना और हास्केल ट्रेसर हैट के लिए समर्थन को एकीकृत करना था। इसमें एक जावास्क्रिप्ट बैकएंड भी था, जिससे उपयोगकर्ता वेब ब्राउज़र में हास्केल प्रोग्राम चला सकते थे।
** यॉर्क हास्केल कंपाइलर ([[ Yhc ]]) nhc98 का ​​एक कांटा था, जिसका लक्ष्य सरल, अधिक पोर्टेबल और कुशल होना और हास्केल ट्रेसर हैट के लिए समर्थन को एकीकृत करना था। इसमें एक [[ जावास्क्रिप्ट ]] बैकएंड भी था, जिससे उपयोगकर्ता [[ वेब ब्राउज़र ]] में हास्केल प्रोग्राम चला सकते थे।


कार्यान्वयन पूरी तरह से हास्केल 98 के अनुरूप नहीं है, और एक प्रकार की हास्केल भाषा का उपयोग करते हुए इसमें शामिल हैं:
कार्यान्वयन पूरी तरह से हास्केल 98 के अनुरूप नहीं है, और एक प्रकार की हास्केल भाषा का उपयोग करते हुए इसमें शामिल हैं:
* एटा और फ्रीज जावा वर्चुअल मशीन को लक्षित करने वाली हास्केल की बोलियां हैं।
* एटा और फ्रीज [[ जावा वर्चुअल मशीन ]] को लक्षित करने वाली हास्केल की बोलियां हैं।
* गोफर (सॉफ्टवेयर) हास्केल की एक शैक्षिक बोली थी, जिसमें मार्क जोन्स द्वारा विकसित कंस्ट्रक्टर क्लासेस नामक एक विशेषता थी। इसे हग्स (हास्केल यूजर के गोफर सिस्टम) द्वारा प्रतिस्थापित किया गया था।
* गोफर ([[ सॉफ्टवेयर ]]) हास्केल की एक शैक्षिक बोली थी, जिसमें मार्क जोन्स द्वारा विकसित कंस्ट्रक्टर क्लासेस नामक एक विशेषता थी। इसे हग्स (हास्केल यूजर के गोफर सिस्टम) द्वारा प्रतिस्थापित किया गया था।
* हीलियम, हास्केल की एक नई बोली। स्पष्ट त्रुटि संदेशों के माध्यम से सीखने को आसान बनाने पर ध्यान केंद्रित किया गया है। वर्तमान में इसमें टाइप क्लास के लिए पूर्ण समर्थन की कमी है, जो इसे कई हास्केल प्रोग्रामों के साथ असंगत बनाता है।
* हीलियम, हास्केल की एक नई बोली। स्पष्ट त्रुटि संदेशों के माध्यम से सीखने को आसान बनाने पर ध्यान केंद्रित किया गया है। वर्तमान में इसमें टाइप क्लास के लिए पूर्ण समर्थन की कमी है, जो इसे कई हास्केल प्रोग्रामों के साथ असंगत बनाता है।


== उल्लेखनीय अनुप्रयोग ==
== उल्लेखनीय अनुप्रयोग ==


* सबूत सहायक Agda (प्रोग्रामिंग भाषा) हास्केल में लिखा गया है।<ref>{{Citation|title=Agda 2|date=2021-10-15|url=https://github.com/agda/agda|publisher=Agda Github Community|access-date=2021-10-16}}</ref>
* सबूत सहायक [[ Agda (प्रोग्रामिंग भाषा) ]] हास्केल में लिखा गया है।<ref>{{Citation|title=Agda 2|date=2021-10-15|url=https://github.com/agda/agda|publisher=Agda Github Community|access-date=2021-10-16}}</ref>
*कैबल (सॉफ्टवेयर) बिल्ड ऑटोमेशन और हास्केल पुस्तकालयों और कार्यक्रमों की पैकेजिंग के लिए एक उपकरण है।<ref>{{cite web|url=https://www.haskell.org/cabal/|title=हास्केल कैबल|access-date=8 April 2015}}</ref>
*[[ कबाल (सॉफ्टवेयर) ]] [[ स्वचालन बनाएँ ]] और हास्केल पुस्तकालयों और कार्यक्रमों की पैकेजिंग के लिए एक उपकरण है।<ref>{{cite web|url=https://www.haskell.org/cabal/|title=हास्केल कैबल|access-date=8 April 2015}}</ref>
* डार्क्स एक संशोधन नियंत्रण प्रणाली है जिसे हास्केल में लिखा गया है, जिसमें कई नवीन विशेषताएं हैं, जैसे लागू करने के लिए पैच का अधिक सटीक नियंत्रण।
* [[ डार्क्स ]] एक [[ संशोधन नियंत्रण प्रणाली ]] है जिसे हास्केल में लिखा गया है, जिसमें कई नवीन विशेषताएं हैं, जैसे लागू करने के लिए पैच का अध