优秀的Common Lisp代码示例?

Fra*_*rar 60 lisp common-lisp

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

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

Tag*_*ith 37

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

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


Pil*_*lsy 28

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

  • 我肯定是第二个.PAIP是我最喜欢的有关编程的书籍之一,虽然这个名字有点误导,恕我直言.我要说的一件事是,这种风格对我来说似乎有点"老式"或学术性.这不是批评 - 虽然在我看来,在过去的10到15年里,时尚的CL成语有所改变,但是代码并没有违背时尚. (2认同)

jmb*_*mbr 11

其他建议(PAIP和CL-PPCRE)非常出色.我还建议你熟悉亚历山大的代码,并看看GBBopen.


Fli*_*man 8

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


小智 5

LISP (Lisp In Small Pieces) 是一本整洁的书;展示柜(小型对象系统)和一些编译器的东西。毫无疑问,Norvig 的书很棒。

我也很喜欢“Building Problem Solvers”,但代码有点粗糙。我不习惯在参数列表中绑定动态范围的变量。但是它在尝试“预编译”歧视网络时做出了很多有趣的改进。本书提供了另一种处理 Norvig 代码的方法;我仍然认为 Norvig 的代码是“更整洁”的代码(更易于阅读和理解,并且仍然具有创造性)。

“Building Problem Solvers”应该带有一个警告标签,比如“你需要一些 aspiren (sp)。当我终于“理解”rms 和 Sussmans 的依赖定向回溯时,感觉就像一道闪电击中了我的脑袋。编译 pdis 也很棒。很棒的东西。我只是希望我能记住这一切......