英文原文:Write You a Haskell
在 2014 年,我写了一篇短教程,是关于用 Haskell 开发一种可以编译成 LLVM 的、小型命令式语言。我对于教程貌似取得的效果感到非常开心,从那么多人那里得到的热烈反响让我深受鼓励。
我在 2015 年能够写什么样的最有影响力的主题,对此做了深入思考;决定在今年继续努力,完成另一个基于项目的《根据首要原则开发一种简单的函数式编程原则》。
这是一个不平凡的主题,不幸的是,它没有得到太多重视,开发这种现代函数式语言的知识,没有在很多程序员中得到扩散。可获得的资源常常在讨论高深的理论,而完全掩盖了工程细节(engineering details)。我想写一个基于项目的、涵盖工程细节的教程,在最后给读者留下一个功能齐全的玩具语言,它可以扩展到其它项目。
我们将开发一种名叫“Fun”的小型函数式语言,这是局部的 Haskell 2010 玩具语言;支持:分析器、类型引用、数据类型、模式匹配、脱糖(desugaring)、typeclass【注1】、高阶类型(higher-kinded type)、monadic IO【注2】、任意阶多态性、record、Core language、STG 中间语言、惰性求值、解释器、内置代码生成器、运行时和 optimization passes。
相对于我的大部分作品,本教程是预先编辑的、粗糙删减的版本,我一直在完善。编译器本身截止 2014 年 12 月份也是完整的,但是每一章(共 28 章)都是逐月完成的,这样我就能根据读者和测试人员的反馈逐步完善文字。关于运行时和代码生成的后面几个章节多少有些复杂、篇幅较长。
(译者注:下面是教程,有兴趣的可以学习~)
— END —
译文: 《编写属于自己的 Haskell 》 腊八粥