6

我正在阅读“Programming Clojure”,我对一本讨论如何尽可能广泛地创建宏的书感兴趣。

你推荐一本书吗?

谢谢。

4

5 回答 5

8

关于 Lisp 宏的典型书籍可能是 Paul Graham 的On Lisp。虽然它使用了 Common Lisp,但如果你真的想查看它的宏,这并不重要,尽管 Clojure 在许多层面上都是不同的。(首先,Clojure 是一个 Lisp-1。)

于 2010-08-26T01:51:34.927 回答
5

尽管它们都是针对 Common Lisp 的,但两本很棒的书是 Paul Graham 的On Lisp(整本书可在他的网站上免费在线获得)和Doug Hoyte 的Let Over Lambda

这两个On Lisp更易于访问;即使 Clojure 宏与 IIRC 更类似于 Scheme 的卫生宏,您仍然几乎可以肯定会从中学到一些东西。

于 2010-08-26T01:50:15.210 回答
4

Michael Fogus 即将出版的书The Joy of Clojure可通过 Manning 的抢先体验计划获得,其中有一章很好地介绍了宏。这是一本很好的书,它解释了函数式编程背后的思维方式,不仅解释了如何以及为什么 Clojure 的特性(包括最新的 1.2 更改)以它们的方式实现。

关于宏的章节解释了 Clojure 中宏的以下用例,它们是如何实现的,以及它们是如何处理的:

定义控制结构
组合表格
改变表格
返回表格
控制 符号 解决 时间
管理资源

于 2010-08-31T09:22:54.020 回答
4

《Practical Common Lisp》一书非常清楚地解释了 Lisp 宏。Clojure 的宏与 Common Lisp 的宏非常相似,几乎所有你所学的东西都会继承下来。“Let Over Lambda”虽然是一部有趣、有趣和创造性的作品,但使用 Lisp 宏的方式与大多数严肃、有经验、实用的 Lisp 程序员使用它们的方式截然不同。我不建议使用“变形”宏(即“知道”特定变量名称)。

于 2010-08-30T02:49:31.317 回答
0

它不完全是一本通用的宏编写书,但AMOP演示了如何将宏用作库/框架的“视图”层。

(嗯,我没有很好地描述这一点。AMOP 是一本无视分类的书!)

于 2010-08-26T14:20:21.177 回答