优秀的Common Lisp代码的例子?
我已经学会了足够多的Common Lisp,能够通过编写应用程序来混淆我的方式。 我读过Seibel的Practical Common Lisp
我应该阅读哪些图书馆或程序来理解Common Lisp的习惯用法?
CL-PPCRE经常被认为是一个很好的例子,理由很充分。 实际上,可能任何一个Edi Weitz的图书馆都会很好的阅读,但是CL-PPCRE特别聪明,它是一个有用而令人印象深刻的图书馆。 除此之外,很多CL实现主要是在CL中编写的。 select通常在CL中实现的CL的一部分,并比较不同的实现如何处理,可能会非常高效。 特别是大型有用的macros观系统的一些最好的例子是标准中事物的实现。 循环是一个有趣的阅读,或者如果你真的雄心勃勃,你可以比较几个CLOS的实现。
如果有一些计算领域对你特别感兴趣,可能值得一提的是,所以人们可以根据自己的喜好来制定相应的build议。
这是另一本书,所以它可能不是你正在寻找的东西,但是Peter Norvig的人工智能编程范式包含了很多精心编写的,小的Common Lisp程序。 这不是完全自然的代码,特别是在前几章中,因为像Practical Common Lisp中的代码一样,它的重点是教你如何在CL中编程,但是它仍然非常值得一读。 它还包含一些很好的例子,你可以在Common Lisp的基础上构build其他语言,在如何提高CL程序性能方面有一些宝贵的build议。
其他build议(PAIP和CL-PPCRE)非常好。 我还build议熟悉亚历山大的代码,并看看GBBopen 。
Metaobject协议的艺术 – 是有史以来最美的代码的书。
LISP(Lisp In Small Pieces)是一本整洁的书, 显示clossette(小obect系统)和一些编译器的东西。 毫无疑问,诺维格的书很棒。
我也非常喜欢“构build问题解决scheme”,但是代码有点贵。 我不习惯在参数列表中绑定dynamic范围的variables。 但是它试图对歧视网进行“预编译”,取得了很多乐趣。 这本书提供了一些Norvig的代码的另一种方法; 我仍然认为Norvigs的代码是“整洁干净”的代码(更容易阅读和理解,而且仍然有创意)。
“build设问题解决者”应该带有一个警告标签,例如“你需要一些aspiren(sp)”,当我最终“理解”rms和sussmans的依赖性指向回溯时,感觉就像是闪电般的闪电。编译这个pdis也是很棒的,非常棒的东西,我只希望我能记住所有的东西。
我喜欢SBCL代码。
我唯一会提供的是编程。 那就是我所做的。
我做了两件事。 一个我解决了一个我熟悉的问题,一个unit testing框架,并将其扩展到包含testing套件。 了解macros观写作。
我做的第二件事是在CL里面玩基本的东西。 macros,closures和风格。
另外不要忘记从Lispers获得关于您的代码的反馈。
(defun ugly-lisp-code? () ())