Lisp简介
2013-03-21 12:27 youxin 阅读(1060) 评论(0) 编辑 收藏 举报原文地址:http://www.paulgraham.com/lispfaq1.html
何为Lisp?
Lisp是一类程序设计语言的名称,它由1950年末John McCarthy发明(更确切地说是发现)的一种语言演化而来。目前Lisp的两种主要方言分别是Common Lisp和Scheme。我们正在致力于一种新方言Arc的开发。
如何学习Lisp?
学习任何语言的方法都是使用它来编写程序。您有两种主要方言可选:Scheme和Common Lisp。尽管它们各有优点和缺点,但是倘若拿Lisp与其他编程语言之间的差距相比,它们之间的差别就微乎其微了。所以如果您想要开始学习Lisp,选择其中任何一种都可以。
这两种方言各自都有许多优秀的书籍和开源实现。所以任选一本书,一套实现,尝试开始编写程序吧。可以通过阅读现有代码来了解Lisp的编程风格。如果遇到困难,就在comp.lang.lisp上发问吧,那儿的人们总是很乐于解答新手的问题。
我应该学哪种,Common Lisp还是Scheme?有什么区别吗?
Common Lisp强大但是丑陋。Scheme紧凑清晰,但是标准只定义了语言的内部核心。如果需要开发实用程序,我估计会使用Common Lisp;如果我在课堂上教学,大概会选择Scheme(但会使用Common Lisp的宏)。
是否存在优秀的开源Lisp实现呢?
有很多这样的实现。我使用的Common Lisp实现是Clisp,不过据说CMUCL也相当不错。Scheme方面我用Scheme 48和PLT Scheme。
能否为想要学习Lisp的人推荐一本教材呢?
你或许会对这本感兴趣。
有没有好的在线教程?
从《Ansi Common Lisp》的第二章开始吧,这一章对Lisp程序设计进行了简要介绍。关于更详细的内容,请阅读Common Lisp参考手册。
如果Lisp真像传说得这么好,那没什么没有更多的人使用它呢?
问题的根源大概在于Lisp看起来很艰深,但是假如有一种具有丰富扩展库的方言出现,这个问题就能得到解决了。
我从何处可以获得《On Lisp》这本书?
感谢Chip Coldwell,你可以从此处在线获得一份Postscript文件。
这本书看似就要重印了,不过假如你决心要购买昂贵的第一版,可以从Amazon找到二手书。
是否存在第二版的《Ansi Common Lisp》?
某些数据库上是这么显示的,但实际上没有,至少目前没有。
是否有关于《Ansi Common Lisp》的习题解答?
很遗憾没有。我本该写一本,但是原本书甫才出版,我们就开始了Viaweb的开发,此后再也没能回过头来。
在哪里可以找到一份和Lisp相关的工作呢?
试试那些编写Lisp程序的公司吧,或者开创自己的事业。
我喜欢Lisp,但是我所在的公司却不允许使用。我该怎么办呢?
想办法让他们同意你使用Python。通常雇主不让你使用Lisp是因为(不论官方理由如何冠冕堂皇)Lisp代码让他们望而生畏。Python看起来平淡无奇,但是在语义上与Lisp有很多共同之处,并且越来越向Lisp靠拢。
甚至他们可能允许你使用Ruby,它和Lisp就更接近了。
你如何看待ML及其派生语言?
绝大多数我所熟识的黑客对ML类的语言都很失望。静态类型的编程语言更适合这种情况:如果已经预先构思好了程序,然后再将想法转变成代码。然而,写程序的过程不是这样的。
不具备链表和混合类型是极大的限制。而这些都是探索式编程(为了便捷,在早期将一切都表示为链表)所必需的,此外还意味着你没有真正的宏可用。
您是否知道有人在做AutoLisp的顾问工作?
我不清楚,不过可以问Google。