有没有适合不懂 Lisp 的人学习的 Template Haskell 教程?

20

我想学习Template Haskell,但我发现所有的教程都假定你已经学过Lisp,并且知道什么是Lisp宏或者你了解一些计算机科学术语 - 如splice、quasiquotations等等 - 或者一些关于宏的理论结果。

我不会编写一行Lisp代码(虽然有打算某一天学习它,但现在没有时间)。Haskell是我第一个函数式语言,我学到了一定程度,可以定期编写它,使用monad和applicative,理解类型系统等等... 但我对其背后的计算机科学理论并不了解(虽然也想学习,但我太蠢了... :P),所以我对通常出现在TH教程上的术语一无所知。

那么问题来了:是否有适用于像我这样的人的TH教程,他们将Haskell作为第一个函数式编程语言来使用,而不是作为专业计算机科学家?也许有一个宏和元编程的介绍,以TH作为示例?

谢谢大家。:)


8
“拼接(splicing)”其实只是 TH(Template Haskell)中表示“代码生成(code generation)”的说法,“准引用(quasiquotation)”大致对应着“代码解析(code parsing)”,并不可怕。 - Rotsor
3个回答

12

7
我知道的最好的Template Haskell入门教程是Bulat Ziganshin撰写的两篇文档。Haskell Wiki上的链接目前似乎已经失效,但您可以通过archive.org访问它们:

2
此外,Tim Sheard和Simon Peyton Jones的原始论文《Haskell模板元编程》可能会很有帮助:
摘要: 我们提出了一种新的扩展纯函数式编程语言Haskell,支持编译时元编程。该系统的目的是支持在编译时算法构建程序。 在编译时生成代码的能力使程序员能够实现多态程序、类似宏的扩展、用户指导优化(如内联)以及从现有数据结构和函数生成支持数据结构和函数等功能。 我们的设计正在Glasgow Haskell Compiler(ghc)中实现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接