我是一名试图学习Common Lisp的C ++程序员。我看过《 Lisp之地》等书籍,并阅读了许多有关Lisp各种优点的在线文章。但是,我需要一些建议。
我所读到的有关Common Lisp的几乎所有内容都与它的惊人性,完成它的速度有多惊人以及它如何惊人地解决了30年前现代编程语言的许多问题有关。此外,还有多么惊人的宏,以及如何在Lisp中使用每个编程范例(OO,功能,基于actor的对象等等),以及列表如何成为最终的数据结构。基本上把Lisp当作一种研究语言,并说它是多么与众不同和具有革命性。
所有这些东西可能都是正确的,但是问题是我还没有多少东西可以做一些实际的事情,例如读取文件并将其拆分为单词并对其进行一些处理。为了学习Common Lisp,我对学习Common Lisp并没有兴趣,但是为了让我以前在C ++中所做的事情变得更快,出错更少。
因此,我的问题是什么是最好的资源(无论是网站,书籍还是其他任何东西),该资源重点在于教授如何使用Common Lisp执行常见的编程任务,例如
- 如何读取文件
- 如何读取文件,替换文件中的单词并将结果写回到文件中
- 遍历目录和其他文件系统中的文件
- 与SQL数据库交互
- 通过套接字进行通信
- 诸如Web服务器之类的线程
- 创建GUI
- 对二进制文件执行操作
- 编写一个解析器(不是Lisp中Lisp的解释器,据我了解这就像Lisp的5行一样)
- 与操作系统(例如,用C或C ++编写的东西)进行交互以完成Lisp无法本地完成的工作
- 如何用C语言编写Lisp扩展名(可以吗?)
- 嵌入lua解释器(可以吗?)
而且也不太实际,立即注意到,如何实现共同的数据结构,口齿不清,如堆,栈,二叉搜索树等,但可能只是使用像Lisp的列表操作car
,并cdr
以正确的方式。我不知道。
我高度怀疑,使用Lisp不可能实现以上任何一项(除了清单中的最后两个例外),否则人们不会非常喜欢它。我读过的上述内容提到了许多用Lisp(Yahoo!网站商店)编写的现实世界软件。
但是,在以前使用(the?)命令性语言进行编程之后,我急于使用我所获得的新知识来编写实际的应用程序。那么用Lisp学习编写实用软件的最快方法是什么?
顺便说一句,我看到彼得·塞贝尔的实践Common Lisp的,但是,以TOC来看,它只是触及了一些我想学习使用Lisp的做的事情。
我是否可以再提出一个问题(对不起,如果将两个问题合并为一个问题),在哪里可以找到对Lisp函数和内容的引用?
我真的很想喜欢Lisp。