174

我用 Python、PHP、Java 和 C 编程已经有几年或几年了,我刚刚读完 Hackers and Painters,所以我很想试试 LISP!

我理解它与我所知道的完全不同,而且这并不容易。我还认为(如果我错了,请纠正我)围绕 LISP 的社区和开发较少。所以我的问题是:学习 LISP 的最佳方法是什么?

我不介意买书或投资一些时间。我只是不想浪费。

“最终”的想法是使用 LISP 进行 Web 开发,我知道这并不常见,所以......我知道在选择第一本书或教程之前计划好我的学习并花大量时间在可能不会的东西上成为最好的方式!

谢谢大家的答案!

编辑:我读了 Practical Common Lisp 并且是:... 很长,很难,很有趣,肯定让我在 Lisp 中滚动,之后我读了这个小计划,它很短,很有趣,对我的整体编程非常非常好。所以我的建议是先阅读小计划者,然后(几个小时,值得一读)如果你决定 lisp(或计划或任何方言)不是你要找的东西,你仍然会玩得很开心递归的新思路!

4

22 回答 22

119

尝试阅读Peter Seibel 的Practical Common Lisp

于 2008-12-29T20:38:41.920 回答
76

我个人最喜欢的是 Abelson & Sussman Structure and Interpretation of Computer Programs。它使用 Scheme,这是一种很好的 Lisp 方言。

如果你喜欢更实用的方法,也许你应该选择一些用于网页设计的 Lisp 框架(我不知道这样的野兽是否存在)并直接加入。

于 2008-12-29T20:47:36.943 回答
59

您可能想从The Little Schemer作为热身开始。这不是一本关于编写生产 Lisp 程序的实用书,但它是一本学习如何用 Lisp思考的好书。

于 2008-12-29T20:47:04.150 回答
44

MIT 以 DIVX 和 MPEG 格式提供了完整的 LISP 课程。我强烈推荐它。

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

于 2008-12-29T21:21:46.950 回答
35

现在有一本书叫“LISP 之国”,它通过编写 80 年代风格的文字游戏来教授 LISP 编程。我现在正在读它,它写得很好,并没有把自己太当回事,我喜欢。

于 2010-12-27T17:02:28.090 回答
24

这里有几个选项。首先,Scheme 和 Common Lisp 在相当深的方面(比如作用域)是相当不同的。你应该选择一个开始并坚持一段时间。我是 Common Lisp 的粉丝,但这可能是那些 vi-vs-EMACS 宗教问题之一。

对于 Scheme,请选择 Kent Dybvig 的Scheme 编程语言,然后是 SICP。

对于 Common Lisp 和 Practical Common Lisp,我推荐 David Lamkins 的成功 Lisp。 成功的 Lisp也可以免费在线获得

之后,看看Queinnec 的Lisp in Small Pieces和 Norvig在 AI book 中的 Lisp 。

Marty Hall在约翰霍普金斯大学有一份不错的名单。

更新:我并不是说永远坚持下去,只是试图同时学习两者会令人困惑。

于 2008-12-29T22:23:40.307 回答
19

拿起康拉德·巴尔斯基 (Conrad Barski ) 的《Lisp之国》。这是使用卡通和游戏对 Lisp 编程进行有趣的介绍。

于 2011-09-15T05:23:43.420 回答
17

我推荐Project Euler作为小问题的绝佳来源,您可以使用它来自学任何新的编程语言。

于 2008-12-29T20:51:47.433 回答
9

Paul Graham 的 Ansi Common Lisp 是一本好书。

我认为它可能已经绝版,所以你最好通过亚马逊获得它。我在大学二年级的时候拿到了“自然语言处理”课程的书。我们必须用 LISP 编写程序项目,所以我需要快速学习 Lisp。

这本书对我帮助很大。

于 2008-12-29T21:57:24.103 回答
9

有一次我遇到了问题。我不知道口齿不清。所以我决定在一个盒子里下载 LISP。

然后我发现自己在没有任何帮助或文档的情况下安装了 Emacs。

然后我有两个问题。

于 2008-12-30T06:41:59.630 回答
7

对于认真的学习者,我推荐Norvig 的PAIP。它是学习 Lisp 和 AI 的绝佳资源。

于 2009-02-04T04:17:32.027 回答
6

伯克利提供播客格式的CS61a。这是基于 SICP 的 CS 课程介绍。这是一个比 1982 年麻省理工学院提供的视频更现代的版本。

于 2009-02-04T04:26:05.270 回答
6

我现在正在学习 Lisp,并且遇到了学习 Lisp 的“书”。这是由Rainer Joswig提出的

这本书名为Common Lisp: A Gentle Introduction to Symbolic Computation,可以以 PDF 格式下载。作者在第一章从类似于 UML 的 Lisp 方法开始,并逐渐介绍了越来越多的 Lisp 语法。

我还查看了实用的 lisp,我认为作者忽略了许多必需的信息,即使对于经验丰富的程序员也是如此。这本书似乎没有这样做(我还没有完全完成,但发现它足够有用,可以提出建议)。

还有一件事,你需要一个工作环境。我发现Lisp in a Box可以很好地工作。它在 Windows 和 Linux 上运行并使用 eMac。

于 2009-03-10T13:42:37.027 回答
5

我被 LISP 的 JVM 方言 - Clojure 所吸引。Clojure 是一种很棒的 LISP,因为

  • 它具有“简化的语法”,即需要较少的 parathensis,有巧妙设计的集合集
  • 它是基于 JVM 的,所以它下面有稳定、高性能的运行时,此外整个 Java 生态系统(库,例如数据库驱动程序、构建工具、IDE)都在我们的范围内
  • Noir 是一个很好的 Web 框架,应用可以部署在 Java Web 和应用服务器上

换句话说,Clojure 可以立即用于生产环境。

在资源方面,至少有 4 本书和植物在线资源:

于 2012-11-08T10:49:27.150 回答
4

我喜欢阅读Practical Common LISPANSI Common LISP

在 LISP 上看起来很有趣,但 190 美元对于一本书来说似乎有点贵。

于 2008-12-29T20:41:50.730 回答
4

对于 Web 开发,您可能想看看hunchentoot,一个用通用 lisp 编写的 Web 服务器。

于 2008-12-29T21:38:47.120 回答
4

我发现完成“The Little Schemer”中的练习确实有助于磨练我思维的递归、模式匹配方面,并使在 XSLT 中的工作变得相当容易。

于 2009-01-13T01:16:37.577 回答
2

根据您的编程经验,我首先推荐 Gentle Introduction to Symbolic Computation 或 Practical Common Lisp。为了练习,我在 Windows 中使用 Allegro CL 8.2 Free Express Edition。它把练习变成了很多乐趣。

于 2011-08-05T08:02:17.310 回答
1

有点难以回答的问题......我认为这完全取决于你的学习方式。

我在大学的 AI 和专家系统课程中学习了 LISP,但这就是我学习的方式……我不是一个很好的书本学习者,我更喜欢有人在课堂上向我解释它。

LISP 绝对是一种独特的语言,如果您习惯于传统的 C、Java、PHP 编程,它需要一个新的思路。

祝你好运!

于 2008-12-29T20:40:00.547 回答
1

我发现阅读SICP这本书确实帮助我学习。我使用了 Steel Bank Common Lisp (SBCL) 并取得了很好的成功。

祝你好运

于 2008-12-29T20:49:17.860 回答
0

我不知道 Lisp 有什么特别之处使它不同于学习任何其他语言。您只需要开始使用它并尝试它的功能。

一种选择可能是尝试一个简单的项目

另一个特定于 Lisp 的选项是编写一个 Emacs 扩展来帮助您完成日常工作。

于 2008-12-29T20:45:20.817 回答
0

按顺序阅读这些书:符号计算的简单介绍,Paul Graham 的 ANSI Common Lisp,然后转到 Practical Common Lisp。或者在使用 PCL 时跳过 ACL 并将其用作参考。

于 2009-03-21T17:57:14.840 回答