2011-04-20 5 views
19

मैं टेम्पलेट हास्केल सीखना चाहता था, लेकिन मुझे लगता है कि सभी ट्यूटोरियल या तो यह मानते हैं कि आपने लिस्प सीखा है और पता है कि लिस्पे मैक्रोज़ क्या हैं, या आप कुछ सीएस सिद्धांत शब्दकोष जानते हैं - चीजें, quasiquotations, आदि के रूप में चीजें ... - या कुछ सैद्धांतिक परिणाम मैक्रोज़ के बारे में।क्या कोई ऐसे टेम्पलेट हैस्केल ट्यूटोरियल है जो लिस्प को नहीं जानता?

मैं लिस्प की एक पंक्ति को कोड नहीं कर सकता (और, हालांकि मैं इसे कुछ दिन करना चाहता हूं, मेरे पास अभी यह सीखने का समय नहीं है)। हास्केल मेरी पहली क्रियात्मक भाषा है और मैंने इसे इस बिंदु पर सीखा है कि मैं नियमित रूप से इसमें कोड कर सकता हूं, मोनैड का उपयोग कर सकता हूं, आवेदक, प्रकार प्रणाली को समझ सकता हूं ... लेकिन मुझे ज्यादा नहीं पता (मैं सीखना चाहता हूं लेकिन मैं भी मैं इसके लिए भी बेवकूफ हूँ ...: पी) इसके पीछे सैद्धांतिक सीएस सामान के बारे में। तो मैं आमतौर पर TH ट्यूटोरियल पर मिलने वाले शब्दकोष से अनजान हूं।

तो सवाल यह है: क्या किसी ऐसे व्यक्ति के लिए टी के बारे में एक ट्यूटोरियल है जो पेशेवर कंप्यूटर वैज्ञानिक के रूप में नहीं है, बल्कि एक ऐसे व्यक्ति के रूप में जो अपने दैनिक कामकाज के लिए प्रोग्रामिंग का उपयोग करता है, जिसने हास्केल को अपनी पहली कार्यात्मक भाषा के रूप में सीखा ? शायद मैक्रोज़ और मेटा-प्रोग्रामिंग के लिए एक परिचय जो उदाहरण के रूप में TH का उपयोग करता है?

धन्यवाद सब कुछ। :)

+6

वास्तव में 'स्प्लिसिंग' कहने का एक TH तरीका है "कोड जनरेशन" और 'क्वासिकोटेशन' लगभग "कोड पार्सिंग" से मेल खाता है। कुछ भी डरावना नहीं है। – Rotsor

उत्तर

11

नहीं, मुझे नहीं लगता कि Template Haskell पर कोई भी महान प्रारंभिक ट्यूटोरियल हैं। सबसे अच्छा तरीका जानने के लिए उदाहरणों पर गौर करने के लिए है, या:

मैंने कभी नहीं पाया लिस्प एक आवश्यकता थी, लेकिन वहाँ के लिए शब्दावली है किसी भी डोमेन-विशिष्ट पुस्तकालय की तरह सीखें।

7

टेम्पलेट हास्केल के लिए सबसे अच्छा प्रारंभिक ट्यूटोरियल मुझे पता है कि बुलेट जिगांशुन द्वारा दो दस्तावेज हैं। टिम Sheard और द्वारा

0

इसके अलावा मूल कागज Template metaprogramming for Haskell: हास्केल विकी से लिंक लेकिन आप archive.org से उन तक पहुँच सकते हैं, पल में टूट हो रहे हैं साइमन Peyton जोन्स उपयोगी हो सकता है:

सार

हम पूरी तरह कार्यात्मक प्रोग्रामिंग भाषा हास्केल के लिए एक नया विस्तार प्रस्तावित करते हैं जो संकलन-समय मेटा-प्रोग्रामिंग का समर्थन करता है। सिस्टम का उद्देश्य संकलन समय पर कार्यक्रमों के एल्गोरिदमिक निर्माण का समर्थन करना है।

संकलन समय पर कोड उत्पन्न करने की क्षमता प्रोग्रामर को पॉलीटाइपिक प्रोग्राम, मैक्रो-जैसे विस्तार, उपयोगकर्ता निर्देशित अनुकूलन (जैसे इनलाइनिंग) जैसी सुविधाओं को लागू करने की अनुमति देता है, और मौजूदा डेटा संरचनाओं से डेटा संरचनाओं और कार्यों का समर्थन करने की पीढ़ी और कार्यों।

हमारे डिजाइन ग्लासगो हास्केल कंपाइलर, ghc में लागू किया जा रहा है।

संबंधित मुद्दे