我不知道Lisp会说它的好坏.看起来每个使用Lisp的人都喜欢它,但是现在最流行的语言来自C语言.
那么Lisp的内容是如此之大,为什么不再使用它呢?有没有什么关于Lisp的坏事(除了不断数量的括号)?
"Lisp是一种可编程编程语言."
- John Foderaro,CACM,1991年9月
这是我的观点:
从表面上看,Lisp是一种很好的,简单的函数式编程语言.几乎没有语法,所有部分都以逻辑方式组合在一起.
如果你深入挖掘,阅读SICP,并编写一个metacircular评估器,你会发现两件事:一,整个解释器(只给几个原语)只是一页代码,两个,代码和数据之间的关系允许优雅的编程技术.
一旦你完全沉浸其中,当他们只允许你说几件事时,感觉就像其他语言一样.如果你能为它定义语法和语义,那么Lisp可以构建任何抽象.
Lisp很好,因为它有一个非常简单,规则的语法.
Lisp很糟糕,因为它有一个非常简单,规则的语法.
Lisp是编程语言的Chuck Norris.
Lisp是其他语言的衡量标准.
了解Lisp展示了开发人员的启示.
我听说过3个弱点(以及它们的反驳):
动态打字.
对于静态类型语言存在一个争论,即为编译器提供足够的信息以捕获某类错误,因此它们不会在运行时发生.但你仍然需要测试.
本文主张动态类型以及更多测试:强类型与强测试.
很难接受.
实际上有两个部分:学习和工具.
Lisp需要一些努力才能真正"获得",但这是值得的,因为学习Lisp真的会让你成为其他语言的更好的程序员.例如,一旦你真正"获得"闭包,你就会理解Java的内部类.一旦你"获得"一流的功能,你每次使用没有它们的语言时都会感到沮丧.
我读过The Little Schemer,正在阅读Practical Common Lisp,它们都非常出色.
接下来是工具.我在Mac上,所以我把注意力集中在Aquamacs Emacs(让Emacs适合新手)和Steel Bank Common Lisp(SBCL).
缺乏图书馆.
我还不确定,但我对此表示怀疑.对于构建网站,看起来像Hunchentoot和Elephant提供了一套很好的工具.但实际上我并没有看到Lispers抱怨缺少库(也许是因为Lisp非常强大而且不需要它们?).
"任何足够复杂的C或Fortran程序都包含一个临时的,非正式指定的,错误缠身的,一半Common Lisp的缓慢实现."
格林斯普的第十条规则
这里有一些有用的链接:
是什么让Lisp与众不同(一些快速的要点)
Lisp的本质(开始很慢,但提出了一个很好的观点)
关于Lisp(整本书)
Lisp - 使用的原因
Peter Seibel出色的Practical Common Lisp的第一章涵盖了他喜欢Lisp的原因.底线是"可编程编程语言"这一短语 - 能够根据您的域或首选样式自定义语言.