我对Lisp的了解不够多,无法说出它的好坏。似乎每个使用Lisp的人都喜欢它,但是,当今最流行的语言是C派生的。
那么Lisp到底有什么好用的,为什么不使用更多呢?Lisp到底有什么不好的地方(除了不断增加的括号)?
我对Lisp的了解不够多,无法说出它的好坏。似乎每个使用Lisp的人都喜欢它,但是,当今最流行的语言是C派生的。
那么Lisp到底有什么好用的,为什么不使用更多呢?Lisp到底有什么不好的地方(除了不断增加的括号)?
Answers:
Lisp是编程语言的查克·诺里斯(Chuck Norris)。
Lisp是衡量其他语言的标准。
了解Lisp可以说明开发人员的启发。
我听说过3个弱点(及其反论点):
动态输入。
对于静态类型的语言,有一个论点是围绕为编译器提供足够的信息来捕获特定类别的错误,以便它们在运行时不会发生。但是您仍然需要测试。
本文主张动态类型化以及更多测试:强类型vs强测试。
很难接。
实际上有两个部分:学习和工具。
Lisp付出了一些努力才能真正“获得”,但这是值得的,因为学习Lisp确实可以使您成为其他语言的更好的程序员。例如,一旦真正“获取”了闭包,便会理解Java的内部类。一旦“获得”一流的功能,每次使用没有它们的语言时,您都会感到沮丧。
我已经读过《The Little Schemer》和《Practical Common Lisp》,两者都很出色。
接下来是工具。我使用的是Mac,因此我已经使用过Aquamacs Emacs(使Emacs适合新手)和Steel Bank Common Lisp(SBCL)。
缺乏图书馆。
我还不能确定,但我对此表示怀疑。对于建立网站,Hunchentoot和Elephant似乎提供了一套很好的工具。但是,实际上我没有看到Lispers抱怨缺少库(也许是因为Lisp如此强大,所以不需要它们吗?)。
“ Lisp是一种可编程的编程语言。”
—约翰·福德拉罗(John Foderaro),CACM,1991年9月
这是我的看法:
从表面上看,Lisp是一种不错的,简单的函数式编程语言。几乎没有语法,所有部分都以逻辑方式组合在一起。
如果您更深入地阅读,阅读SICP并编写一个元圆评估器,您会发现两件事:一,整个解释器(仅包含几个原语)仅是一页代码,其二,代码与数据之间的关系。允许使用优雅的编程技术。
一旦您完全理解了这一点,当其他语言只允许您说几句话时,就好像其他语言一样固定。如果您可以为其定义语法和语义,那么Lisp完全可以构建任何抽象。
Lisp很好,因为它具有非常简单,规则的语法。
Lisp不好,因为它具有非常少的,简单的常规语法。
“任何足够复杂的C或Fortran程序都包含一个临时的,非正式指定的,bug缠身的,缓慢执行Common Lisp的一半。”
以下是一些有用的链接:
的 彼得·塞贝尔(Peter Seibel)出色的《实践通用Lisp第一章介绍了他喜欢Lisp的原因。底线是短语“可编程编程语言”-能够根据您的域或首选样式自定义语言。
Lisp程序倾向于在有关程序工作原理的想法与实际编写的代码之间提供更清晰的映射。
资料来源:http : //www.gigamonkeys.com/book/introduction-why-lisp.html