对于不了解Lisp的人,是否有任何Template Haskell教程?

时间:2011-04-20 00:50:13

标签: haskell macros metaprogramming template-haskell

我想学习模板Haskell,但我找到的所有教程要么假设你学习了lisp并且知道什么是lisp宏,或者你知道一些cs理论行话 - 作为拼接,quasiquotations等的东西......或者一些理论关于宏的结果。

我无法对单行lisp进行编码(虽然我有一天打算这样做,但我现在没时间学习它)。 Haskell是我的第一个函数式语言,我学到了它,我可以定期编写代码,使用monad,applicative,理解类型系统等等......但我不太了解(也想学习但是我对它来说太愚蠢......:P)关于它背后的理论背景。所以我对通常在TH教程中找到的术语一无所知。

所以,问题是:对于编写Haskell的人,有没有关于TH的教程,不是作为专业的计算机科学家,而是作为一个使用编程进行日常琐事的人,他将Haskell作为他的第一个函数式语言学习?也许介绍一下以TH为例的宏和元编程?

谢谢大家。 :)

3 个答案:

答案 0 :(得分:12)

不,我认为Template Haskell没有任何精彩的入门教程。学习的最佳方式是查看示例,或者:

我从未发现Lisp是一项要求,但是有一些术语需要学习,就像任何特定领域的库一样。

答案 1 :(得分:7)

我知道模板Haskell的最佳入门教程是Bulat Ziganshin的两篇文章。 Haskell Wiki的链接目前似乎已被打破,但您可以通过archive.org访问它们:

答案 2 :(得分:1)

Tim Sheard和Simon Peyton Jones的原始论文Template metaprogramming for Haskell可能会有所帮助:

  

<强>抽象

     

我们提出了对纯函数式编程语言Haskell的新扩展,它支持编译时元编程。该系统的目的是在编译时支持程序的算法构造。

     

在编译时生成代码的能力允许程序员实现诸如polytypic程序,类似宏的扩展,用户定向优化(例如内联)以及从现有数据结构生成支持数据结构和函数等功能。功能

     

我们的设计正在Glasgow Haskell Compiler,ghc。

中实施
相关问题