हैमलेट Template Haskell पर आधारित है; विशेष रूप से, quasiquoter (यानी [hamlet| ... |]
) इनलाइन टेम्पलेट्स के लिए उपयोग किया जाता है, और एक विभाजन (यानी $(hamletFile "foo")
) फ़ाइल से टेम्पलेट बनाने के लिए उपयोग किया जाता है। चर को तब टेम्पलेट हास्केल की आत्मनिरीक्षण सुविधाओं के साथ एक्सेस किया जाता है।
जिसके परिणामस्वरूप टेम्पलेट्स संभावना पार्स और रनटाइम पर व्याख्या की है, क्योंकि हेमलेट टेम्पलेट्स संकलन समय पर नियमित रूप से हास्केल कोड को संकलित किया गया है की तुलना में अधिक कुशल हैं:
इस चर के लिए स्वत: पहुंच की अनुमति देते परे फायदे हैं।
फ़ाइल से टेम्पलेट पढ़ने पर, फ़ाइल को संकलित समय पर पार्स किया जाता है और परिणामस्वरूप बाइनरी में एम्बेड किया जाता है, इसलिए टेम्पलेट को रनटाइम पर उसी स्थान पर चारों ओर रखने की आवश्यकता नहीं होती है, और इसकी वैधता टेम्पलेट स्थिर रूप से सुनिश्चित किया जाता है।
मेरा मानना है कि इन फायदों सभी Shakespeare -family टेम्पलेट्स के लिए लागू होते हैं। The Haddock documentation में उपलब्ध quasiquoters और splices पर अधिक जानकारी है।
जबकि मुझे कुछ भी पता नहीं है, शायद यह टेम्पलेट हैकेल है। बेशक (मेरे लिए) टेम्पलेट हैकेल गहरी जादू है, इसलिए आप वहां जाते हैं :) एक ही चीज़ का एक सरल उदाहरण क्विक चेक की क्विक चेक है: यह जादूगर रूप से आपके सभी प्रोप * बाइंडिंग के बारे में जानता है और उन्हें चलाता है। –