我不知道Lisp是否好坏。似乎每个使用过Lisp的人都喜欢它,但是现在最流行的语言都来自C语言。
那么Lisp的内容是如此之大,为什么不使用它呢?有没有什么关于Lisp的坏事(除了不断数量的括号)?
答案 0 :(得分:69)
“Lisp是一种可编程编程语言。” - John Foderaro,CACM,1991年9月
以下是我的观点:
从表面上看,Lisp是一种很好的,简单的函数式编程语言。几乎没有语法,所有部分都以逻辑方式组合在一起。
如果你深入挖掘一下,阅读SICP,并编写一个元叶评估器,你会发现两件事:一,整个解释器(只给出一些原语)只是一页代码,两个,代码和数据之间的关系允许优雅的编程技术。
一旦你完全沉浸其中,当他们只允许你说几件事时,感觉就像其他语言一样。如果你能为它定义语法和语义,那么Lisp可以构建任何抽象。
答案 1 :(得分:59)
Lisp很好,因为它有一个非常简单,规则的语法。
Lisp很糟糕,因为它有一个非常简单,规则的语法。
答案 2 :(得分:53)
Lisp是编程语言的Chuck Norris。
Lisp是其他语言的衡量标准。
了解Lisp展示了开发人员的启示。
我听说过3个弱点(及其反驳论点):
动态输入。
静态类型语言存在一个争论,即为编译器提供足够的信息来捕获某类错误,因此它们不会在运行时发生。但你仍然需要测试。
本文主张动态类型以及更多测试:Strong Typing vs. Strong Testing。
难以接受。
实际上有两个部分:学习和工具。
Lisp需要一些努力才能真正“获得”,但这是值得的,因为学习Lisp真的会让你成为其他语言的更好的程序员。例如,一旦你真正“获得”闭包,你就会理解Java的内部类。一旦你“获得”一流的功能,你每次使用没有它们的语言时都会感到沮丧。
我读过 The Little Schemer 并正在阅读 Practical Common Lisp ,这两者都很棒。
接下来是工具。我在Mac上,所以我已经注意到Aquamacs Emacs(让Emacs适合新手)和Steel Bank Common Lisp(SBCL)。
缺少图书馆。
我还不确定,但我对此表示怀疑。对于构建网站,它看起来像Hunchentoot和Elephant提供了一套很好的工具。但实际上我并没有看到Lispers抱怨缺少库(也许是因为Lisp非常强大而且不需要它们?)。
答案 3 :(得分:20)
“任何足够复杂的C或Fortran程序都包含一个临时的,非正式指定的,错误的,慢速实现的一半Common Lisp。”
答案 4 :(得分:15)
以下是一些有用的链接:
答案 5 :(得分:8)
first chapter of Peter Seibel's excellent Practical Common Lisp涵盖了他喜欢Lisp的原因。底线是“可编程编程语言”这一短语 - 能够根据您的域或首选样式自定义语言。
答案 6 :(得分:2)
一个Lisp程序往往会在你的程序之间提供更清晰的映射 关于程序如何工作以及您实际编写的代码的想法。
来源:http://www.gigamonkeys.com/book/introduction-why-lisp.html