优秀的Common Lisp代码示例?

时间:2010-04-06 14:30:47

标签: lisp common-lisp

我已经学到了足够的Common Lisp,能够通过编写应用程序来混淆我的方式。我读过Seibel的Practical Common Lisp

我应该阅读哪些图书馆或程序来理解Common Lisp的成语,道?

7 个答案:

答案 0 :(得分:37)

CL-PPCRE通常被认为是一个很好的例子。实际上,Edi Weitz的任何一个库都可以很好地阅读,但CL-PPCRE特别聪明,它是一个有用且令人印象深刻的库。除此之外,很多CL实现主要是在CL中编写的。选择通常在CL中实现的CL的某些部分并比较不同实现如何处理它可能非常有效。特别是,大型有用宏系统的一些最佳示例是标准中的事物的实现。循环是一个有趣的阅读,或者如果你真的雄心勃勃,你可以比较一些CLOS的实现。

如果您对某些计算领域特别感兴趣,那么可能值得一提,因此人们可以为此量身定制建议。

答案 1 :(得分:28)

这是另一本书,所以它可能不是你想要的,但是Peter Norvig的 Paradigms in Artificial Intelligence Programming 包含了很多写得很好,小的Common Lisp程序。这不是完全自然的代码,特别是在前几章中,因为像 Practical Common Lisp 中的代码一样,它专注于教你如何在CL中编程,但它仍然非常值得阅读。它还包含一些在Common Lisp之上构建其他语言的方法的优秀示例,并且它提供了一些有关如何提高CL程序性能的宝贵建议。

答案 2 :(得分:11)

其他建议(PAIP和CL-PPCRE)非常出色。我还建议您熟悉Alexandria的代码,并查看GBBopen

答案 3 :(得分:8)

元对象协议的艺术 - 是一本有着最美丽代码的书。

答案 4 :(得分:3)

LISP(Lisp In Small Pieces)是一本很好的书;显示clossette(小对象系统)和 一些编译器的东西毫无疑问,诺维格的书非常棒。

我也非常喜欢“建立问题故障”,但代码有点粗鲁。我不是 用于绑定参数列表中的动态范围变量。但它带来了很多乐趣 试图“预编译”歧视网的改进。这本书给了另一本书 接近Norvig的一些代码;我仍然认为Norvigs代码 是更“整洁和清洁”的代码(更容易阅读和理解,仍然有创意)。

“构建问题解决者”应该附带一个警告标签,例如“你需要一些 aspiren(sp)。当我最终的时候,感觉就像一道闪电击中了我的脑袋 “理解”rms和sussmans的依赖指导回溯。编译pdis 也很棒。优秀的东西。我只是希望我能记住这一切......

答案 5 :(得分:2)

我喜欢SBCL代码。

答案 6 :(得分:2)

我唯一能提供的就是编程。这就是我所做的。

我做了两件事。我解决了一个我熟悉的问题,一个单元测试框架,并将其扩展到包括测试套件。了解宏观写作。

我做的第二件事就是在CL中使用基本对象。宏,封闭和风格。

另外,请不要忘记从Lispers获取有关代码的反馈。

(defun ugly-lisp-code? () ())