我想学习和使用SBCL因为它易于学习和速度。 (3年前我一直在和Lisp一起玩,现在我正在刷它。)但是我如何才能学习标准库中包含的内容,以便我不重新实现呢?
在Python之后,这就像一场噩梦:SBCL网站只有manual,仅涵盖软件,而不是标准库上的单词。 (为了比较,Gnu Common Lisp的网站只有源代码和二进制文件。)
答案 0 :(得分:19)
首先:问题不是特定于SBCL。 CL库是标准化的,因此您可以使用任何lisp的文档。
如上所述,CL HyperSpec非常有用。然而,它是一个参考,因此在我看来不太适合学习。
为了学习,那里有各种各样的书。我个人非常喜欢这些:
您还应该查看现有代码。我特别喜欢阅读Edi Weitz编写的任何文章,但是从不同的资料中读取并阅读,以了解其他人如何使用Lisp及其庞大的库来解决问题。
如果您可以花费那么多时间,您甚至可以登录IRC(#lisp
频道)并在那里提问。或者将您撰写的代码发布到comp.lang.lisp
,并要求通过直接反馈进行批评。
答案 1 :(得分:10)
有关Common Lisp
中包含的内容的文档,请参阅Common Lisp HyperSpec答案 2 :(得分:3)
另外,如果您正在学习lisp,请考虑使用CLISP而不是SBCL。 CLISP(IMHO)有一个更直观的调试器。对于任何非生产的东西,大多数Common Lisp实现之间的差异可以忽略不计。
答案 3 :(得分:1)
如果您在Windows上进行开发, CLHS (Common Lisp HyperSpec)和 CLtL2 (Common Lisp the Language,2nd Edition)可用作CHM帮助文件,这使得寻找CL标准库函数要容易得多。我发现它比使用(在线或离线)HTML版本更快。
CHM文件可能来自多个来源。一个方便的下载是:
http://www.daansystems.com/lispide/
(它们与LispIDE软件包捆绑在一起。)