【发布时间】:2011-02-04 20:22:02
【问题描述】:
我已经学习了足够多的 Common Lisp,能够在编写应用程序时一头雾水。我读过 Seibel 的 Practical Common Lisp
我应该阅读哪些库或程序来理解 Common Lisp 的成语道?
【问题讨论】:
标签: lisp common-lisp
我已经学习了足够多的 Common Lisp,能够在编写应用程序时一头雾水。我读过 Seibel 的 Practical Common Lisp
我应该阅读哪些库或程序来理解 Common Lisp 的成语道?
【问题讨论】:
标签: lisp common-lisp
LISP(Lisp In Small Pieces)是一本简洁的书;显示 clossette(小对象系统)和 一些编译器的东西。毫无疑问,诺维格的书很棒。
我也很喜欢“构建问题解决者”,但代码有点粗糙。我不是 用于绑定参数列表中的动态范围变量。但它带来了很多乐趣 试图“预编译”歧视网的改进。这本书给出了另一个 Norvig 的一些代码的方法;我仍然认为Norvig的代码 是很多“更整洁”的代码(更容易阅读和理解,而且仍然很有创意)。
“建立问题解决者”应该带有一个警告标签,例如“你需要一些 渴望(sp)。感觉就像一道闪电击中了我的头,当我终于 “理解” rms 和 Sussmans 的依赖定向回溯。编译 pdis 也很精彩。优秀的东西。我只是希望我能记住这一切......
【讨论】:
这是另一本书,所以它可能不是您正在寻找的,但 Peter Norvig 的 Paradigms in Artificial Intelligence Programming 包含许多编写良好的小型 Common Lisp 程序。这不是完全自然的代码,尤其是在前几章中,因为就像 Practical Common Lisp 中的代码一样,它侧重于教你如何使用 CL 编程,但它仍然非常值得一读。它还包含一些在 Common Lisp 之上构建其他语言的优秀示例,并就如何提高 CL 程序的性能提供了一些有价值的建议。
【讨论】:
CL-PPCRE 经常被引用为一个很好的例子,这是有充分理由的。实际上,可能 Edi Weitz 的任何一个库都可以很好地阅读,但 CL-PPCRE 特别聪明,它是一个有用且令人印象深刻的库。除此之外,许多 CL 实现主要是用 CL 编写的。选择通常在 CL 中实现的 CL 的某些部分并比较不同的实现如何处理它是非常有成效的。特别是,大型有用宏系统的一些最佳示例是标准中事物的实现。 Loop 是一本有趣的读物,或者如果你真的很有野心,你可以比较一些 CLOS 的实现。
如果您对某个计算领域特别感兴趣,可能值得一提,以便人们可以针对该领域量身定制建议。
【讨论】:
元对象协议的艺术 - 是一本包含有史以来最漂亮的代码的书。
【讨论】:
我唯一能提供的就是编程。我就是这么做的。
我做了两件事。我解决了一个我熟悉的问题,一个单元测试框架并将其扩展为包括测试套件。了解宏的编写。
我做的第二件事是玩弄 CL 中的基本对象。宏、闭包和样式。
也不要忘记从 Lispers 那里获得有关您的代码的反馈。
【讨论】:
我喜欢 SBCL 代码。
【讨论】:
其他建议(PAIP 和 CL-PPCRE)非常好。我还建议熟悉Alexandria 的代码并查看GBBopen。
【讨论】: