20

我想学习 Template Haskell,但我发现的所有教程要么假设你学习了 lisp 并且知道什么是 lisp 宏,要么你知道一些 cs 理论术语——比如拼接、准引用等……——或者一些关于宏的理论结果.

我无法编写一行 lisp 代码(而且,虽然我打算有一天会这样做,但我现在没有时间学习它)。Haskell 是我的第一个函数式语言,我学会了它,以至于我可以定期用它编写代码,使用 monads,应用程序,理解类型系统等......但我知道的不多(也想学习,但我'我太愚蠢了...... :P) 关于它背后的理论 cs 东西。所以我对我通常在 TH 教程中找到的行话一无所知。

所以,问题是:对于编写 Haskell 代码的人,不是作为专业的计算机科学家,而是作为将编程用于日常家务的人,将 Haskell 作为他的第一门函数式语言,是否有关于 TH 的教程?也许是对以 TH 为例的宏和元编程的介绍?

谢谢大家。:)

4

3 回答 3

12

不,我认为Template Haskell没有任何很棒的介绍性教程。最好的学习方法是看例子,或者:

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

于 2011-04-20T02:40:56.353 回答
7

我所知道的关于 Template Haskell 的最佳入门教程是 Bulat Ziganshin 的两篇文档。Haskell Wiki 的链接目前似乎已损坏,但您可以通过 archive.org 访问它们:

于 2011-04-20T21:47:13.740 回答
2

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

抽象的

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

在编译时生成代码的能力允许程序员实现诸如多型程序、类宏扩展、用户导向优化(如内联)以及从现有数据结构和函数生成支持数据结构和函数等特性。

我们的设计正在 Glasgow Haskell 编译器 ghc 中实现。

于 2015-03-24T13:19:57.070 回答