Lisp有什么了不起的?

我不知道Lisp是否好或坏。 似乎所有使用Lisp的人都喜欢它,但是现在最stream行的语言是C语言的后代。

那么Lisp是如此伟大,为什么它不被使用呢? 对于Lisp,除了不计其数的括号之外,还有什么不好的地方?

Lisp是编程语言的Chuck Norris。

Lisp是其他语言衡量的标准。

了解Lisp展示了开发者的启发。

我听说过三个弱点(和他们的反驳):

  1. dynamictypes。

    有一个关于静态types语言的论点,它们围绕给编译器提供足够的信息来捕获某种types的错误,所以它们不会在运行时发生。 但是你仍然需要testing。

    本文主张dynamic打字以及更多的testing: 强打字与强打击testing 。

  2. 很难拾起。

    实际上有两个部分:学习和工具。

    Lisp需要一些努力才能真正“获得”,但这是值得的,因为学习Lisp确实会使你成为其他语言中更好的程序员。 例如,一旦你真的“得到”closures,你就会理解Java的内部类。 一旦你“获得”了一stream的function,每当你使用没有它们的语言时,你都会感到压抑。

    我读过小小的Schemer ,正在阅读Practical Common Lisp ,它们都很棒。

    接下来是工具。 我在Mac上,所以我已经在Aquamacs Emacs(让Emacs适合新手了)和Steel Bank Common Lisp(SBCL)上做好准备。

  3. 缺乏图书馆。

    我还不能确定,但​​我怀疑这一点。 为了build立网站,Hunchentoot和Elephant提供了一套很好的工具。 但是,我真的没有看到Lispers抱怨缺less库(可能是因为Lisp非常强大,而不需要它?)。

“Lisp是一种可编程的编程语言”。
– 1991年9月,CACM的John Foderaro

这是我的看法:

从表面上看,Lisp是一个不错的,简单的函数式编程语言。 几乎没有语法,所有的部分以逻辑的方式组合在一起。

如果你深入一点,阅读SICP ,并写一个元环评估者,你会发现两件事情:一,整个解释器(只给出几个原语)只是一页代码,二是代码和数据之间的关系考虑到优雅的编程技术。

一旦你完全理解了这一点,当其他语言只允许你说几件事情的时候,就会觉得其他语言是一成不变的。 如果你可以为它定义语法和语义,Lisp可以build立任何抽象。

Lisp是很好的,因为它有一个非常简单,规则的语法。

Lisp是不好的,因为它有一个非常简单,规则的语法。

任何非常复杂的C或Fortran程序都包含一个特殊的,非正式指定的,错误的,慢一半的Common Lisp实现。“

格林普斯的第十条规则

这里有一些有用的链接:

  • 什么使Lisp不同 (一些简短的要点)
  • Lisp的本质 (起步缓慢,但很重要)
  • 在Lisp上 (整本书)
  • Lisp – 使用的原因

Peter Seibel优秀的Practical Common Lisp的第一章讲述了他喜欢Lisp的原因。 底线是“可编程编程语言”这一短语 – 能够自定义您的域名或首选风格的语言。

一个Lisp程序往往提供了一个更清晰的关于程序如何工作的想法和你实际编写的代码之间的映射。

资料来源: http : //www.gigamonkeys.com/book/introduction-why-lisp.html